
如何使用終端機視窗在 Unix 上將目錄結構 dir1 複製到 dir2(包含所有子目錄)?
答案1
cp -rf /source/path/ /destination/path/
-r
= 遞歸,複製所有子目錄
-f
=強制,如果無法開啟現有目標文件,請將其刪除並重試
筆記使用該標誌時應該小心,-f
因為它會強制覆蓋您複製到的任何內容。感謝@Nifle 的建議。
如果需要,您可能需要使用 * 通配符複製目錄中的所有檔案。
答案2
雖然cp -R
答案是正確的(順便說一句,BSD 上標誌的大小寫必須是大寫,Linux 上都支持),但是涉及焦油的古老咒語:
$ tar cf - . | (cd DIR; tar xf - )
你到底為什麼要這麼做?因為 tar 對連結既困難又具有像徵意義。
您是否希望進行複製以將現有符號連結替換為具有相同文字的符號連結?或連結到同一目標(調整相對路徑進行補償)?或使用目標的按位副本?
如果原始文件中的兩個文件是硬連結的,新結構應該有兩個資料副本還是只有一個?
決定,決定。 Tar 有合理的預設值,但可以讓您非常具體地了解它。
答案3
我喜歡
cp -axv source dest
Rsync 是另一個很好的工具
rsync -va source dest