cp命令用來將一個(gè)或多個(gè)源文件或者目錄復(fù)制到指定的目的文件或目錄。它可以將單個(gè)源文件復(fù)制成一個(gè)指定文件名的具體的文件或一個(gè)已經(jīng)存在的目錄下。cp命令還支持同時(shí)復(fù)制多個(gè)文件,當(dāng)一次復(fù)制多個(gè)文件時(shí),目標(biāo)文件參數(shù)必須是一個(gè)已經(jīng)存在的目錄linux命令大全,否則將出現(xiàn)錯(cuò)誤。
cp(選項(xiàng))(參數(shù))
-a:此參數(shù)的效果和同時(shí)指定"-dpR"參數(shù)相同;
-d:當(dāng)復(fù)制符號(hào)連接時(shí),把目標(biāo)文件或目錄也建立為符號(hào)連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強(qiáng)行復(fù)制文件或目錄,不論目標(biāo)文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對(duì)源文件建立硬連接,而非復(fù)制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對(duì)源文件建立符號(hào)連接,而非復(fù)制文件;
-u:使用這項(xiàng)參數(shù)后只會(huì)在源文件的更改時(shí)間較目標(biāo)文件更新時(shí)或是名稱相互對(duì)應(yīng)的目標(biāo)文件并不存在時(shí),才復(fù)制文件;
-S:在備份文件時(shí),用指定的后綴“SUFFIX”代替文件的默認(rèn)后綴;
-b:覆蓋已存在的文件目標(biāo)前將目標(biāo)文件備份;
-v:詳細(xì)顯示命令執(zhí)行的操作。
如果把一個(gè)文件復(fù)制到一個(gè)目標(biāo)文件中,而目標(biāo)文件已經(jīng)存在,那么,該目標(biāo)文件的內(nèi)容將被破壞。此命令中所有參數(shù)既可以是絕對(duì)路徑名,也可以是相對(duì)路徑名。通常會(huì)用到點(diǎn).或點(diǎn)點(diǎn)..的形式。例如,下面的命令將指定文件復(fù)制到當(dāng)前目錄下:
cp ../mary/homework/assign .
所有目標(biāo)文件指定的目錄必須是己經(jīng)存在的,cp命令不能創(chuàng)建目錄。如果沒有文件復(fù)制的權(quán)限,則系統(tǒng)會(huì)顯示出錯(cuò)信息。
將文件file復(fù)制到目錄/usr/men/tmp下,并改名為file1
cp file /usr/men/tmp/file1
將目錄/usr/men下的所有文件及其子目錄復(fù)制到目錄/usr/zh中
cp -r /usr/men /usr/zh
交互式地將目錄/usr/men中的以m打頭的所有.c文件復(fù)制到目錄/usr/zh中
cp -i /usr/men m*.c /usr/zh
我們在Linux下使用cp命令復(fù)制文件時(shí)候,有時(shí)候會(huì)需要覆蓋一些同名文件,覆蓋文件的時(shí)候都會(huì)有提示:需要不停的按Y來確定執(zhí)行覆蓋。文件數(shù)量不多還好,但是要是幾百個(gè)估計(jì)按Y都要吐血了,于是折騰來半天總結(jié)了一個(gè)方法:
cp aaa/* /bbb
復(fù)制目錄aaa下所有到/bbb目錄下,這時(shí)如果/bbb目錄下有和aaa同名的文件,需要按Y來確認(rèn)并且會(huì)略過aaa目錄下的子目錄。
cp -r aaa/* /bbb
這次依然需要按Y來確認(rèn)操作,但是沒有忽略子目錄。
cp -r -a aaa/* /bbb
依然需要按Y來確認(rèn)操作,并且把a(bǔ)aa目錄以及子目錄和文件屬性也傳遞到了/bbb。
\cp -r -a aaa/* /bbb
成功,沒有提示按Y、傳遞了目錄屬性、沒有略過目錄。
yexiang@ubuntu:<~>$ cat bbb.txt
10:55:22 up 2:21, 3 users, load average: 0.00, 0.00, 0.00。18:35:17 up 11 days, 9:30, 1 user, load average: 0.00, 0.00, 0.00。 22:38:01 up 3 days, 11:47, 2 users, load average: 0.03, 0.13, 0.16 。
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT