如何用 cp 複製整個資料夾包含子資料夾
Linux 複製檔案是用 cp
cp 這個指令可以用 -r 或大是 -R 參數來指示說要複製子資料夾,其實,這個 r 的意思是 recursive ( 遞迴 ),就是等於是告訴 cp 要整個資料夾都去繞一圈的意思,所以,用 cp 複製整個資料夾的指令如下:
 
以複製 /home/abc/xyz 整個資夾到 /tmp 為例
 
cp -R /home/abc/xyz/. /tmp


 
 
 
 
cp (複製檔案或目錄)
[root]# cp [-adfilprsu] 來源檔(source) 目標檔(destination)
[root]# cp [options] source1 source2 source3 …. directory
選項與參數:
-a :相當於 -dr –preserve=all 的意思,至於 dr 請參考下列說明;(常用)
-d :若來源檔為連結檔的屬性(link file),則複製連結檔屬性而非檔案本身;
-f :為強制(force)的意思,若目標檔案已經存在且無法開啟,則移除後再嘗試一次;
-i :若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)
-l :進行硬式連結(hard link)的連結檔建立,而非複製檔案本身;
-p :連同檔案的屬性(權限、用戶、時間)一起複製過去,而非使用預設屬性(備份常用);
-r :遞迴持續複製,用於目錄的複製行為;(常用)
-s :複製成為符號連結檔 (symbolic link),亦即『捷徑』檔案;
-u :destination 比 source 舊才更新 destination,或 destination 不存在的情況下才複製。
–preserve=all :除了 -p 的權限相關參數外,還加入 SELinux 的屬性, links, xattr 等也複製了。
最後需要注意的,如果來源檔有兩個以上,則最後一個目的檔一定要是『目錄』才行!
 
複製(cp)這個指令是非常重要的,不同身份者執行這個指令會有不同的結果產生,尤其是那個-a, -p的選項

ERIC2097_1

Tags: , ,