次の場所からディレクトリをコピーしたい:
path1/dir1
に
path2/dir2
初めて呼び出すとき
cp -r path1/dir1 path2/dir2
問題ありません、dir2はpath2の下に作成されます
ls path2/dir2
2回目は、dir1がpath2/dir2の下に作成されます。
ls path2/dir2/dir1
cp
だけを使用して正しい動作を取得できますか? (= rm -f path2/dir2
を呼び出さずに)
-T
オプションを使用してcp(GNU cp
):
cp -rT path2/dir2 path1/dir1
これにrsync
を使用する場合(変更されていないファイルのコピーを回避するため、おそらくこれが必要です)、ソースディレクトリに/
を追加して、内容が具体的になるようにすることができます。ディレクトリ自体ではなくコピーされます。例えば:
rsync -r path1/dir1/ path2/dir2
ディレクトリを既存の宛先に「コピー」するときの動作があいまいです。あなたは__したいですか
基本的に、単純なコピー操作と考えるものは、実際にははるかに複雑であり、cp
には複雑すぎます。いずれの場合も、代わりにrsync
コマンドを使用する必要があります。