2017-06-28 13 views
0

私は1日を通して画像を追加するフォルダ(フォルダA)を持っています。フォルダ内のファイルの比較、削除、追加

「アップロードする写真がある別のフォルダ(フォルダB)」があります。

フォルダAとフォルダBのファイルを比較し、フォルダBから共通ファイルを削除し、フォルダBに共通ファイルを追加しないスクリプトを実行したいと思います。シェルスクリプトでzilchの経験があり、 。

ありがとうございます!

+1

ここでは、あなたが書いたコードを手助けしていますが、ここにコードを書いたり、これを行う方法についてのチュートリアルはありません。 – Rob

答えて

0

以下は、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 
+0

ありがとうございました。申し訳ありません - これはうまくいくように見えますが、私はこれをどのように使用するか微妙な考えがあります。これは '.sh'ファイルとして保存されるはずですか?私はそれを 'Rpi'に' backup.sh'として保存し、 '。/ backup.sh'を実行しようとしました。それは私にエラーが見つかりませんコマンドを与えます。 Macでは 'sh backup.sh'と' pics:No such file or directory'を試しましたが、 'pics'と' upload'ディレクトリを作成してパスをチェックしました。 – Cipher

+0

はい、 '.sh'ファイルとして保存してください。一度実行すると、 'chmod + x backup.sh'で実行可能にしてください。これで '。/ backup.sh'で実行することができます。ファイルの先頭にシバンを追加したことに気づくでしょう。ファイルを実行するためにバイナリを使用する必要があるかどうかをシェルに伝えます(この場合はsh、たとえばbashに変更できます)。 – Will

+0

Macとラズベリーの両方で '.sh'スクリプトを実行すると' ls: "〜/ pics"にアクセスできません:そのようなファイルやディレクトリはありません。 – Cipher

関連する問題