2つの異なるディレクトリにある既存のファイルを比較し、存在しない場合はコピーし、そうでない場合は上書きします。

2つの異なるディレクトリにある既存のファイルを比較し、存在しない場合はコピーし、そうでない場合は上書きします。

2つの異なるディレクトリにあるファイルを比較し、ファイルがdir2にない場合はdir1からdir2にコピーし、すでに存在する場合は上書きするスクリプトを作成しようとします。

使用できることはわかっていますが、diff dir1 dir2結果をdir2にどのようにコピーしますか?diffこのコマンドは同様の結果を提供するので、only in dir1: file1.txt私が知っている限り、ファイル自体ではありません(正しいですか?)

カバレッジ部分ではコマンドを使用することにしましたが、[ -ot ]もう一度理解すると、 [ -ot ]ファイルとのみ比較でき、ディレクトリは比較できませんか?

答え1

rsyncローカルで作業し、ファイルのタイムスタンプとファイルサイズをテストします。

rsync --archive /path/to/source/ /path/to/destination/

rsync単一のファイルにも使用できます。

答え2

なぜダメなのcp

\cp -f /path/to/dir1/* /path/to/dir2/

関連情報