0

我创建了这个 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/
4

2 回答 2

0

如果它甚至不执行 mkdir,那么听起来您想要的脚本版本很可能不是正在运行的版本。尝试使用限定路径,例如./myscript或绝对路径,例如/home/joe/bin/myscript. 该命令type myscript将告诉 shell 从哪里运行它。

set -x另外,在添加到脚本顶部或使用后尝试运行脚本bash -x myscript;这将在执行时显示每一行。

如果这仍然没有帮助,则可能有 bash 启动代码,例如.bashrc挡路。这很难诊断,尽管set -x可以使用相同的方法,但要非常小心,除非第二个用户可以登录并编辑该用户的启动脚本,因为启动脚本中的错误可能会导致无法登录系统。

于 2013-08-26T20:57:39.603 回答
0

尝试这个

chmod +x yourscriptname

 ./yourscriptname

确保您正在运行您制作的相同脚本。

于 2013-08-27T08:07:03.970 回答