一連のファイルをディレクトリAからディレクトリBにコピーしたいのですが、ディレクトリAのファイルがディレクトリBのファイルと同一である場合、そのファイルはコピーしないでください(したがって、その変更時間は更新しました)。独自のスクリプトを作成せずに、既存のツールでそれを行う方法はありますか?
ユースケースを少し詳しく説明します:私は.c
一時ディレクトリに多数のファイルを自動生成します(すべてのファイルを無条件に生成する必要がある方法によって)。そして、それらを再生成するときに、コピーしたいだけです実際のソースディレクトリに変更されたものは、変更されていないものを(古い作成時間で)make
そのままにしておくため、再コンパイルする必要はありません。(.c
ただし、生成されるファイルのすべてがファイルではないため、テキスト比較ではなくバイナリ比較を行う必要があります。)
(注:これは、https://stackoverflow.com/questions/8981552/speeding-up-file-comparions-with-cmp-on-cygwin/8981762#8981762で尋ねた質問から生まれました。この操作を実行するために使用していたスクリプトファイルを高速化するために、特にシェルでこれを行う簡単な方法からスクリプトはcmp
ファイルのすべてのペアで何かを呼び出しますが、これらのプロセスをすべて開始するには時間がかかりすぎます。)
rsync -avnc
か、long wayを使用しますrsync --archive --verbose --dry-run --checksum
。
diff -qr dirA dirB
してdirA
、およびdirB
に固有のファイルをそれぞれ確認できます。