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

これを試して

chmod +x yourscriptname

 ./yourscriptname

作成したのと同じスクリプトを実行していることを確認してください。

于 2013-08-27T08:07:03.970 に答える
0

mkdirさえ実行しない場合は、必要なスクリプトのバージョンが実行されていない可能性が最も高いようです。などの修飾パス./myscriptまたは絶対パスを使用してみてください/home/joe/bin/myscript。コマンドtype myscriptは、シェルがそれを実行している場所を示します。

set -xまた、スクリプトの先頭に追加するか、 bash -x myscript;を使用して、スクリプトを実行してみてください。実行されるとすべての行が表示されます。

それでも問題が解決しない場合は、bash の起動コードが.bashrc邪魔をしている可能性があります。これを診断するのははるかに困難ですが、同じset -x方法を使用することもできますが、2 番目のユーザーがログインしてこのユーザーの起動スクリプトを編集できない場合は、起動スクリプトに誤りがあるとシステムにログインできなくなる可能性があるため、細心の注意を払う必要があります。

于 2013-08-26T20:57:39.603 に答える