Cp
複製目錄+重命名
我想從以下位置複製目錄:
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
)
使用
-T
cp (GNUcp
) 的選項:cp -rT path2/dir2 path1/dir1
如果您使用
rsync
它(這可能是您想要的,因為它將避免複製未更改的文件),您可以將 a 附加/
到源目錄,以便專門複製內容而不是目錄本身。例如:rsync -r path1/dir1/ path2/dir2
在將目錄“複製”到已經存在的目標時,您希望的行為是模棱兩可的。你想要_____嗎
- 只添加新文件?
- 添加新文件並更新內容已更改的文件?
- 添加和更新文件,並刪除已從源中刪除的目標文件?
基本上,你認為的簡單複制操作實際上要復雜得多——對於
cp
. 在所有情況下,您都希望使用該rsync
命令。