cp命令用來複製檔案或者目錄,是linux系統中最常用的命令之一。一般情況下,shell會設定乙個別名,在命令列下複製檔案時,如果目標檔案已經存在,就會詢問是否覆蓋,不管你是否使用-i引數。但是如果是在shell指令碼中執行cp時,沒有-i引數時不會詢問是否覆蓋。
[root@nagios ~]# alias
alias cp='cp -i'
cp [選項]... [-t] 源 目的
或:cp [選項]... 源... 目錄
或:cp [選項]... -t 目錄 源...
-a, --archive 等於-dr--preserve=all
--backup[=control 為每個已存在的目標檔案建立備份
-i,--interactive 覆蓋前詢問(使前面的 -n 選項失效)
-l,--link 鏈結檔案而不複製
-l,--dereference 總是跟隨符號鏈結
-n,--no-clobber 不要覆蓋已存在的檔案(使前面的 -i 選項失效)
-r,-r, --recursive 遞迴複製目錄及其子目錄內的所有內容
-a, --archive 等於-dr --preserve=all
--backup[=control 為每個已存在的目標檔案建立備份
-b 類似--backup 但不接受引數
--copy-contents 在遞迴處理是複製特殊檔案內容
-d 等於--no-dereference--preserve=links
-f,--force 如果目標檔案無法開啟則將其移除並重試(當 -n 選項
存在時則不需再選此項)
-i,--interactive 覆蓋前詢問(使前面的 -n 選項失效)
-h 跟隨原始檔中的命令列符號鏈結
-l,--link 鏈結檔案而不複製
-l,--dereference 總是跟隨符號鏈結
-n,--no-clobber 不要覆蓋已存在的檔案(使前面的 -i 選項失效)
-p,--no-dereference 不跟隨原始檔中的符號鏈結
-p 等於--preserve=模式,所有權,時間戳
--preserve[=屬性列表 保持指定的屬性(預設:模式,所有權,時間戳),如果
可能保持附加屬性:環境、鏈結、xattr 等
-c sameas --preserve=context
--sno-preserve=屬性列表 不保留指定的檔案屬性
--parents 複製前在目標目錄建立**檔案路徑中的所有目錄
-r,-r, --recursive 遞迴複製目錄及其子目錄內的所有內容
--reflink[=when] 控制轉殖/cow 副本。請檢視下面的內如。
--remove-destination 嘗試開啟目標檔案前先刪除已存在的目的地
檔案 (相對於 --force 選項)
--sparse=when 控制建立稀疏檔案的方式
--strip-trailing-slashes 刪除引數中所有原始檔/目錄末端的斜槓
-s,--symbolic-link 只建立符號鏈結而不複製檔案
-s,--suffix=字尾 自行指定備份檔案的字尾
-t, --target-directory=目錄 將所有引數指定的原始檔/目錄
複製至目標目錄
-t,--no-target-directory 將目標目錄視作普通檔案
-u,--update copy only whenthe source file is newer
than thedestination file or when the
destination file is missing
-v,--verbose explain what isbeing done
-x,--one-file-system stay on thisfile system
-z,--context=context set securitycontext of copy to context
--help 顯示此幫助資訊並退出
--version 顯示版本資訊並退出
[bzfys@nagiost1]$ tree
├── t2
├── t3
│?? └── t2
└── t4
[bzfys@nagios t1]$ cp t4 ./t3/
[bzfys@nagiost1]$ tree
├── t2
├── t3
│?? ├── t2
│?? └── t4
└── t4
[root@nagiost1]# ll
總用量 8
drwxrwxr-x 2 bzfys bzfys 4096 6月 18 09:16 t2
drwxrwxr-x 3 bzfys bzfys 4096 6月 18 09:18 t3
-rw-rw-r-- 1 bzfys bzfys 0 6月 18 09:17 t4
[root@nagiost1]# cp t4 t3/
cp:是否覆蓋"t3/t4"? y
[root@nagiost1]# ll t3/
總用量 4
drwxrwxr-x 2 bzfys bzfys 4096 6月 18 09:16 t2
-rw-rw-r-- 1 bzfys bzfys 0 6月 18 09:22 t4
[root@nagiost1]# cp -p t4 t3/
cp:是否覆蓋"t3/t4"? y
[root@nagiost1]# ll t3/
總用量 4
drwxrwxr-x 2 bzfys bzfys 4096 6月 18 09:16 t2
-rw-rw-r-- 1 bzfys bzfys 0 6月 18 09:17 t4
不難看出,如果有-p引數拷貝的檔案時間戳等屬性也不會變
[root@nagiost1]# cp t3 t5
cp: 略過目錄"t3"
[root@nagiost1]# cp -a t3 t5
[root@nagiost1]# tree
├── t2
├── t3
│?? ├── t2
│?? └── t4
├── t4
└── t5
├── t2
└── t4
5 directories, 3 files
可以看出如果要複製目錄需要-a或者-r引數(-r引數後面演示)
[root@nagiost1]# cp t3 t6/
cp: 略過目錄"t3
[root@nagiost1]# cp -r t3 t6
[root@nagiost1]# tree
├── t2
├── t3
│?? ├── t2
│?? └── t4
├── t4
├── t5
│?? ├── t2
│?? └── t4
└── t6
└── t3
├── t2
└── t4
8 directories, 4 files
[root@nagiost1]# cp -r t3/ t6/
cp:是否覆蓋"t6/t3/t4"? y
[root@nagiost1]# tree
├── t2
├── t3
│?? ├── t2
│?? └── t4
├── t4
├── t5
│?? ├── t2
│?? └── t4
└── t6
└── t3
├── t2
└── t
我們可以看出,加不加/最後的結果是一樣的
每天進步一點點
很多朋友總喜歡問 成功靠什麼?其實,成功很難單一的歸納為靠什麼條件,如果一定要回答,只能從某種意義上說 很多人的成功就是靠他們每天比別人 多做一點點 正如古人有云 業精於勤,荒於嬉。這裡所說的勤,也就是比別人多做一點點,即付出多一點的勞動和努力。不要小看這一點點,又如古語說 集腋成裘,積沙成丘。如果...
每天進步一點點
在模組化程式設計時,在子模組中宣告變數 例如unsigned char aa 不需要在標頭檔案中宣告 要在主函式中呼叫,要寫成 extern unsigned char aa 而不能寫成 extern aa 寫成extern aa 則無法改變aa的值。2014年9月22日 21 12 00 品質因數...
每天進步一點點(一)
最近接了第乙個商業專案,一人獨立完成從前台到後台,做了有幾天的時間,每天進步一點點,把每天看到的學到的記錄下來,以後也堅持。後台繼續用自己的extjs老本行,因為相比其他js庫,extjs用的比較熟,現成的 也有所以開發起來也比較容易,今天學到了兩個ext的新東西。一 ext和後台進行互動大部分用的...