Cp

複製目錄+重命名

  • April 14, 2014

我想從以下位置複製目錄:

path1/dir1

path2/dir2

我第一次呼叫

cp -r path1/dir1 path2/dir2

沒問題,dir2是在path2下創建的

ls path2/dir2

第二次,在 path2/dir2 下創建 dir1

ls path2/dir2/dir1

我只能使用 獲得正確的行為cp嗎?(= 不呼叫rm -f path2/dir2

使用-Tcp (GNU cp) 的選項:

cp -rT path2/dir2 path1/dir1

如果您使用rsync它(這可能是您想要的,因為它將避免複製未更改的文件),您可以將 a 附加/到源目錄,以便專門複製內容而不是目錄本身。例如:

rsync -r path1/dir1/ path2/dir2

在將目錄“複製”到已經存在的目標時,您希望的行為是模棱兩可的。你想要_____嗎

  • 只添加新文件?
  • 添加新文件並更新內容已更改的文件?
  • 添加和更新文件,並刪除已從源中刪除的目標文件?

基本上,你認為的簡單複制操作實際上要復雜得多——對於cp. 在所有情況下,您都希望使用該rsync命令。

引用自:https://unix.stackexchange.com/questions/124661