我创建了这个 bash 文件,并在其中添加了我经常运行的一系列命令,用于同步数码相机中的文件。重点是它没有任何作用!我错过了什么?
谢谢!
代码:
#!/bin/bash
#temporal
mkdir /tmp/canon
#copy files from camera
rsync -r /run/user/mango/gvfs/g*/DCIM /tmp/canon
cd /tmp/canon
#get files from subdirs
find ./ -name '*.JPG' -exec mv '{}' ./ \;
#remove dirs
ls -l | awk -F'[0-9][0-9]:[0-9][0-9]' '/^d/{print $NF}'| xargs -i rm -rf '{}' \;
#recreate folder structure with year|month pattern
jhead -n%Y/%m/%f *.JPG
#Sync with external HD
rsync -r --ignore-existing . /media/mango/WD/FOTOS/
最佳答案
如果它甚至不执行 mkdir,那么听起来很可能您想要的脚本版本不是正在运行的版本。尝试使用限定路径,例如 ./myscript
或绝对路径,例如 /home/joe/bin/myscript
。命令 type myscript
将告诉 shell 从哪里运行它。
此外,尝试在脚本顶部添加 set -x
或使用 bash -x myscript
后运行脚本;这将显示执行时的每一行。
如果这仍然没有帮助,则可能有 bash 启动代码,例如在 .bashrc
中。虽然可以使用相同的 set -x
来诊断,但要非常小心,除非第二个用户可以登录并编辑该用户的启动脚本,因为启动脚本中的错误可能会导致无法登录系统。
关于linux - 需要帮助来创建简单的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18451323/