一天一個 Linux 命令(11):cp命令
阿新 • • 發佈:2021-09-15
本文為joshua317原創文章,轉載請註明:轉載自joshua317部落格https://www.joshua317.com/article/112
一、簡介
Linux裡面的cp命令用來複制檔案或者目錄,是Linux系統中最常用的命令之一。一般情下,shell會設定一個別名,在命令列下複製檔案時,如果目標檔案已經存在,就會詢問是否覆蓋,不管你是否使用-i引數。但是如果是在shell指令碼中執行cp時,沒有-i引數時不會詢問是否覆蓋。這說明命令列和shell指令碼的執行方式有些不同。
二、格式說明
cp [OPTION]... [-T] SOURCE DEST or: cp [OPTION]... SOURCE... DIRECTORY or: cp [OPTION]... -t DIRECTORY SOURCE... Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. cp [選項]… [-T] 源 目的 或:cp [選項]… 源… 目錄 或:cp [選項]… -t 目錄 源…
三、選項說明
-a:此選項通常在複製目錄時使用,它保留連結、檔案屬性,並複製目錄下的所有內容。其作用等於dpR引數組合。 -b: 類似–backup 但不接受引數 -d:複製時保留連結。這裡所說的連結相當於 Windows 系統中的快捷方式。 -f:覆蓋已經存在的目標檔案而不給出提示。 -H: 跟隨原始檔中的命令列符號連結 -i:與 -f 選項相反,在覆蓋目標檔案之前給出提示,要求使用者確認是否覆蓋,回答 y 時目標檔案將被覆蓋。 -l:不復制檔案,只是生成連結檔案。 -n: 不要覆蓋已存在的檔案(使前面的 -i 選項失效) -p:除複製檔案的內容外,還把修改時間和訪問許可權也複製到新檔案中。 -r,-R:若給出的原始檔是一個目錄檔案,此時將複製該目錄下所有的子目錄和檔案。
四、命令功能
將原始檔複製至目標檔案,或將多個原始檔複製至目標目錄。
五、常見用法
1.複製單個檔案到目標目錄,檔案在目標檔案中不存在
將test.txt檔案複製到test目錄
cp test.txt test
注意:
在沒有帶-a引數時,兩個檔案的時間是不一樣的。在帶了-a引數時,兩個檔案的時間是一致的。
2.目標檔案存在時,會詢問是否覆蓋
cp test.txt test
注意:目標檔案存在時,會詢問是否覆蓋。這是因為cp是cp -i的別名。目標檔案存在時,即使加了-f標誌,也還會詢問是否覆蓋。
3.複製整個目錄
cp test2 test3
注意:
(1)如果目標目錄不存在時,則建立對應的目標目錄,和源目錄同級;
(2)目標目錄存在時,整個源目錄被複制到目標目錄裡面。
4.複製的 test1.txt 建立一個連結檔test1_link.txt
cp -s test1.txt test1_link.txt
注意:
test1_link.txt 是由 -s 的引數造成的,建立的是一個『快捷方式』,所以可以看到在檔案的最右邊,會顯示這個檔案是『連結』到哪裡去了
5.遞迴複製檔案
使用指令cp將當前目錄test2/下的所有檔案複製到新目錄test3下,輸入如下命令:
cp –r test2/ test3
本文為joshua317原創文章,轉載請註明:轉載自joshua317部落格https://www.joshua317.com/article/112