マスター フォルダーに追加されたファイルのリストを取得し、新しいファイルのみをそれぞれのバックアップ フォルダーにコピーする必要があります。各フォルダーへのパスには複数のフォルダーがあり、すべて番号で名前が付けられ、深さは 1 レベルのみです。
ie /tester/a/100
/tester/a/101 ...
diff -r
通常、生成された diff.txt ファイルの行ごと に " Only in /testing/a/101: 2093_thumb.png " を返します。
NOTE: there is a space after the colon
パスとファイル名から101を別の変数に取得し、それらをバックアップ フォルダーにコピーする必要があります。
diff.txt の各行から2093_thumb.png を取得して for ループを実行するには、lesserfolder 変数を取得してコロンなしで101を取得し、mainfile 変数を取得する必要があり ますが、動作するようには見えません。変数をエコーするためにテストしようとするたびに、すべて間違った結果が得られます。$file
#!/bin/bash
diff_file=/tester/diff.txt
mainfolder=/testing/a
bacfolder= /testing/b
diff -r $mainfolder $bacfolder > $diff_file
LIST=`cat $diff_file`
for file in $LIST
do
maindir=$file[3]
lesserfolder=
mainfile=$file[4]
# cp $mainfolder/$lesserFolder/$mainfile $bacfolder/$lesserFolder/$mainfile
echo $maindir $mainfile $lesserfolder
done
echo
ステートメントを機能させることができれば、cp
それも機能します。