2つのディレクトリのコンテンツストリーミングの比較[閉じる]

2つのディレクトリのコンテンツストリーミングの比較[閉じる]

次のタスクにストリーミングする方法(1つのコマンドまたはスクリプトで):

  • 両方のディレクトリdir1とdir2の内容(ファイルとフォルダ)を比較します。
  • dir1ディレクトリに新しいファイルが表示されたら、そのファイルをdir2にコピーし始め、同時にハンドラを使用して処理します。

diff - >コピー - > some.shの実行

ベストアンサー1

次のコマンドを使用して、dir1 の内容を file1.txt にリストします。

ls -ltr | awk '{print $9}'  > /var/tmp/file1.txt

file1.txt には次の内容が含まれています。

t1
1
l.sh
r.txt
l.py
l.txt
p.txt

次のコマンドを使用して、dir2 の内容を file2.txt にリストします。

ls -ltr | awk '{print $9}' > /var/tmp/file2.txt
t1
1
l.sh
r.txt
l.py
l.txt

file1.txtと比較して、このコマンドはfile2.txtにないコンテンツを見つけてディレクトリ2にコピーします。

awk 'NR==FNR {a[$1];next}!($1 in a) {print $1}' file2.txt file1.txt |
awk '{print "cp -rvfp" " " "directory1path”$1 " " "directory2path"}' |
sh

おすすめ記事