我已经创建了这个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/
答案 0 :(得分:0)
如果它甚至没有做mkdir,那么很可能你想要的脚本版本不是正在运行的版本。尝试使用合格路径,例如./myscript
或绝对路径,例如/home/joe/bin/myscript
。命令type myscript
将告诉shell运行它的位置。
此外,尝试在将set -x
添加到脚本顶部或使用bash -x myscript
后运行脚本;这将在执行时显示每一行。
如果这仍然没有帮助,可能会有bash启动代码,例如在.bashrc
中阻碍。尽管可以使用相同的set -x
,但是除非第二个用户可以登录和编辑该用户的启动脚本,因为启动脚本中的错误会导致无法登录系统,因此诊断起来要困难得多。 / p>
答案 1 :(得分:0)
chmod +x yourscriptname
./yourscriptname
确保您运行的是相同的脚本。