交換せずにすべてのファイルを再帰的にコピーします。

交換せずにすべてのファイルを再帰的にコピーします。

想像する:

ソースディレクトリ:

/day1/hour1/instance1/files.ext
/day1/hour1/instance2/files.ext
/day1/hour1/instance3/files.ext
/day1/hour2/instance1/files.ext
/day1/hour2/instance2/files.ext

など..

ターゲットディレクトリ(すでに存在する):

/day1/hour1/instance4/files.ext
/day1/hour1/instance5/files.ext
/day1/hour1/instance6/files.ext
/day1/hour2/instance6/files.ext
/day1/hour2/instance7/files.ext

ソースからターゲットにすべてのファイルをコピーする必要があります。

ご覧のとおり、同じツリーがあります。つまり、同じ日付と同じ時間を意味しますが、ソースとターゲットのインスタンスは異なります。ソース内のすべてのディレクトリとファイルをターゲットの同じツリーにコピーする必要がありますが、すでにターゲットフォルダにあるすべてのファイルは保持する必要があります。

どうすればいいですか?

cp -Rそれが私に必要なものですか?それともパラメータを追加する必要がありますか?

答え1

そしてrsync

rsync --archive --ignore-existing source_dir/ target_dir/

source_dirこれにより、階層inteがコピーされますが、inteにすでに存在するファイルは上書きされませんtarget_dirtarget_dir

答え2

代わりにrsyncを使うと思います。 rsyncを使用すると、データをコピーして同期できます。一般的なパラメータは次のとおりです。

rsync -avh source destination

v詳細情報aの場合の再帰およびファイル権限、所有権、およびタイムスタンプの保存の場合h人が読める出力番号生成の場合

関連情報