私は1日を通して画像を追加するフォルダ(フォルダA)を持っています。フォルダ内のファイルの比較、削除、追加
「アップロードする写真がある別のフォルダ(フォルダB)」があります。
フォルダAとフォルダBのファイルを比較し、フォルダBから共通ファイルを削除し、フォルダBに共通ファイルを追加しないスクリプトを実行したいと思います。シェルスクリプトでzilchの経験があり、 。
ありがとうございます!
私は1日を通して画像を追加するフォルダ(フォルダA)を持っています。フォルダ内のファイルの比較、削除、追加
「アップロードする写真がある別のフォルダ(フォルダB)」があります。
フォルダAとフォルダBのファイルを比較し、フォルダBから共通ファイルを削除し、フォルダBに共通ファイルを追加しないスクリプトを実行したいと思います。シェルスクリプトでzilchの経験があり、 。
ありがとうございます!
以下は、DIR_A
のファイルを反復します。 DIR_B
にあるファイル(つまり、「共通ファイル」)もDIR_B
から削除されます。 DIR_B
に見つからないファイル(つまり「共通でないファイル」)がDIR_B
に追加されます。
#!/bin/sh
DIR_A="~/pics"
DIR_B="~/uploads"
for pic in `ls $DIR_A`; do
if [ -e "$DIR_B/$pic" ]; then
rm $DIR_B/$pic
else
cp $DIR_A/$pic $DIR_B/$pic
fi
done
ありがとうございました。申し訳ありません - これはうまくいくように見えますが、私はこれをどのように使用するか微妙な考えがあります。これは '.sh'ファイルとして保存されるはずですか?私はそれを 'Rpi'に' backup.sh'として保存し、 '。/ backup.sh'を実行しようとしました。それは私にエラーが見つかりませんコマンドを与えます。 Macでは 'sh backup.sh'と' pics:No such file or directory'を試しましたが、 'pics'と' upload'ディレクトリを作成してパスをチェックしました。 – Cipher
はい、 '.sh'ファイルとして保存してください。一度実行すると、 'chmod + x backup.sh'で実行可能にしてください。これで '。/ backup.sh'で実行することができます。ファイルの先頭にシバンを追加したことに気づくでしょう。ファイルを実行するためにバイナリを使用する必要があるかどうかをシェルに伝えます(この場合はsh、たとえばbashに変更できます)。 – Will
Macとラズベリーの両方で '.sh'スクリプトを実行すると' ls: "〜/ pics"にアクセスできません:そのようなファイルやディレクトリはありません。 – Cipher
ここでは、あなたが書いたコードを手助けしていますが、ここにコードを書いたり、これを行う方法についてのチュートリアルはありません。 – Rob