cp命令用來複制文件或者目錄,是Linux系統中最經常使用的命令之一。通常狀況下,shell會設置一個別名,在命令行下複製文件時,若是目標文件已經存在,就會詢問是否覆蓋,無論你是否使用-i參數。可是若是是在shell腳本中執行cp時,沒有-i參數時不會詢問是否覆蓋。這說明命令行和shell腳本的執行方式有些不一樣。shell
cp - copy files and directories將源文件複製至目標文件,或將多個源文件複製至目標目錄spa
cp [選項]... [-T] 源 目的命令行
或:cp [選項]... 源... 目錄code
或:cp [選項]... -t 目錄 源... blog
-a, --archive 等於-dR --preserve=all遞歸
--backup[=CONTROL 爲每一個已存在的目標文件建立備份it
-b 相似--backup 但不接受參數class
--copy-contents 在遞歸處理是複製特殊文件內容file
-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 等
-R, -r, --recursive 複製目錄及目錄內的全部項目
命令:
cp 2.txt lcp/
將2.txt文件到lcp目標目錄中。
1 [root@moban data1]# ll 查看當前文件 2 total 4 3 -rw-r--r--. 1 root root 0 Feb 8 11:15 2.txt 須要複製的文件 4 drwxr-xr-x. 2 root root 4096 Feb 8 11:41 lcp 目標文件 5 [root@moban data1]# cp 2.txt lcp/ 使用cp命令來將目標文件複製到目標路徑內 6 [root@moban data1]# cd lcp/ 打開lcp文件來查看一下是否將2.txt成功複製 7 [root@moban lcp]# ll 8 total 0 9 -rw-r--r--. 1 root root 0 Feb 8 11:44 2.txt
複製文件時間相同(帶屬性的文件複製)在沒有帶-a參數時,兩個文件的時間是不同的。在帶了-a參數時,兩個文件的時間是一致的。
cp 2.txt lcp/
說明:剛纔已經複製過一遍了。那麼lcp文件夾下2.txt已經存在,咱們此次在用這個命令複製一下,他會提示覆蓋而且須要你確認。
1 [root@moban lcp]# cd .. 使用cd ..命令能夠返回上一級 2 [root@moban data1]# cp 2.txt lcp/ 3 cp: overwrite `lcp/2.txt'? y
說明:
目標文件存在時,會詢問是否覆蓋。這是由於cp是cp -i的別名。目標文件存在時,即便加了-f標誌,也還會詢問是否覆蓋。