ディレクトリのコピー+名前の変更

ディレクトリのコピー+名前の変更

以下からディレクトリをコピーしたいと思います。

path1/dir1

到着

path2/dir2

初めて電話したとき

cp -r path1/dir1 path2/dir2

問題ありません。 dir2 は path2 の下に作成されます。

ls path2/dir2

bu 2番目に、dir1はpath2 / dir2の下に作成されました。

ls path2/dir2/dir1

justを使用して正しい動作を取得できますかcp? (=呼び出されないrm -f path2/dir2

答え1

-Tcp(GNU)オプションを使用してくださいcp

cp -rT path2/dir2 path1/dir1

この目的のためにこれを使用する場合rsync(変更されていないファイルをコピーしないため、必要なものかもしれません)、/ディレクトリ自体以外のコンテンツが具体的にコピーされるようにソースディレクトリにaを追加できます。たとえば、

rsync -r path1/dir1/ path2/dir2

答え2

すでに存在する宛先にディレクトリを「コピー」する場合、目的の動作は明確ではありません。あなたはしたいですか?

  • 新しいファイルを追加するだけですか?
  • 新しいファイルを追加し、内容が変更されたファイルを更新しますか?
  • ファイルを追加および更新し、ソースから削除されたターゲットのファイルを削除しますか?

基本的に、単純なコピー操作と思われる作業は実際にははるかに複雑ですcp。すべての場合にこのコマンドを使用しようとしますrsync

関連情報