學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 >

Linux系統(tǒng)cp命令實(shí)例解析教程

時(shí)間: 加城1195 分享

  Linux系統(tǒng)的cp命令是copy的縮寫(xiě),用于復(fù)制文件或文件夾內(nèi)容信息等,很常用,具體怎么操作呢。下面由學(xué)習(xí)啦小編為大家整理了每天一個(gè)Linux命令之cp命令詳解,希望對(duì)大家有幫助!

  每天一個(gè)Linux命令之cp命令詳解

  cp命令用來(lái)復(fù)制文件或者目錄,是Linux系統(tǒng)中最常用的命令之一。[]一般情況下,shell會(huì)設(shè)置一個(gè)別名,在命令行下復(fù)制文件時(shí),如果目標(biāo)文件已經(jīng)存在,就會(huì)詢(xún)問(wèn)是否覆蓋,不管你是否使用-i參數(shù)。但是如果是在shell腳本中執(zhí)行cp時(shí),沒(méi)有-i參數(shù)時(shí)不會(huì)詢(xún)問(wèn)是否覆蓋。這說(shuō)明命令行和shell腳本的執(zhí)行方式有些不同。

  1.命令格式:

  用法:

  cp[選項(xiàng)]...[-T]源目的

  或:cp[選項(xiàng)]...源...目錄

  或:cp[選項(xiàng)]...-t目錄源...

  2.命令功能:

  將源文件復(fù)制至目標(biāo)文件,或?qū)⒍鄠€(gè)源文件復(fù)制至目標(biāo)目錄。

  3.命令參數(shù):

  -a,--archive等于-dR--preserve=all

  --backup[=CONTROL為每個(gè)已存在的目標(biāo)文件創(chuàng)建備份

  -b類(lèi)似--backup但不接受參數(shù)

  --copy-contents在遞歸處理是復(fù)制特殊文件內(nèi)容

  -d等于--no-dereference--preserve=links

  -f,--force如果目標(biāo)文件無(wú)法打開(kāi)則將其移除并重試(當(dāng)-n選項(xiàng)

  存在時(shí)則不需再選此項(xiàng))

  -i,--interactive覆蓋前詢(xún)問(wèn)(使前面的-n選項(xiàng)失效)

  -H跟隨源文件中的命令行符號(hào)鏈接

  -l,--link鏈接文件而不復(fù)制

  -L,--dereference總是跟隨符號(hào)鏈接

  -n,--no-clobber不要覆蓋已存在的文件(使前面的-i選項(xiàng)失效)

  -P,--no-dereference不跟隨源文件中的符號(hào)鏈接

  -p等于--preserve=模式,所有權(quán),時(shí)間戳

  --preserve[=屬性列表保持指定的屬性(默認(rèn):模式,所有權(quán),時(shí)間戳),如果

  可能保持附加屬性:環(huán)境、鏈接、xattr等

  -R,-r,--recursive復(fù)制目錄及目錄內(nèi)的所有項(xiàng)目

  每天一個(gè)Linux命令之cp命令實(shí)例

  實(shí)例一:復(fù)制單個(gè)文件到目標(biāo)目錄,文件在目標(biāo)文件中不存在

  命令:

  cplog.logtest5

  輸出:

  [root@localhosttest]#cplog.logtest5

  [root@localhosttest]#ll

  -rw-r--r--1rootroot010-2814:48log.log

  drwxr-xr-x6rootroot409610-2701:58scf

  drwxrwxrwx2rootroot409610-2814:47test3

  drwxr-xr-x2rootroot409610-2814:53test5

  [root@localhosttest]#cdtest5

  [root@localhosttest5]#ll

  -rw-r--r--1rootroot010-2814:46log5-1.log

  -rw-r--r--1rootroot010-2814:46log5-2.log

  -rw-r--r--1rootroot010-2814:46log5-3.log

  -rw-r--r--1rootroot010-2814:53log.log

  說(shuō)明:

  在沒(méi)有帶-a參數(shù)時(shí),兩個(gè)文件的時(shí)間是不一樣的。在帶了-a參數(shù)時(shí),兩個(gè)文件的時(shí)間是一致的。

  實(shí)例二:目標(biāo)文件存在時(shí),會(huì)詢(xún)問(wèn)是否覆蓋

  命令:

  cplog.logtest5

  輸出:

  [root@localhosttest]#cplog.logtest5

  cp:是否覆蓋“test5/log.log”?n

  [root@localhosttest]#cp-alog.logtest5

  cp:是否覆蓋“test5/log.log”?y

  [root@localhosttest]#cdtest5/

  [root@localhosttest5]#ll

  -rw-r--r--1rootroot010-2814:46log5-1.log

  -rw-r--r--1rootroot010-2814:46log5-2.log

  -rw-r--r--1rootroot010-2814:46log5-3.log

  -rw-r--r--1rootroot010-2814:48log.log

  說(shuō)明:

  目標(biāo)文件存在時(shí),會(huì)詢(xún)問(wèn)是否覆蓋。這是因?yàn)閏p是cp-i的別名。目標(biāo)文件存在時(shí),即使加了-f標(biāo)志,也還會(huì)詢(xún)問(wèn)是否覆蓋。

  實(shí)例三:復(fù)制整個(gè)目錄

  命令:

  輸出:

  目標(biāo)目錄存在時(shí):

  [root@localhosttest]#cp-atest3test5

  [root@localhosttest]#ll

  -rw-r--r--1rootroot010-2814:48log.log

  補(bǔ)充:每天一個(gè)命令之cp命令其它用法

  ♦ cp afile afile.bak —— 把文件 afile 復(fù)制為新文件 afile.bak。

  ♦ cp afile /home/bible/ —— 把文件 afile 從當(dāng)前目錄復(fù)制到/home/bible/目錄下。

  ♦ cp * /tmp —— 把當(dāng)前目錄下的所有未隱藏文件復(fù)制到/tmp/目錄下。

  ♦ cp -a docs docs.bak —— 遞歸性第把當(dāng)前目錄下的 docs 目錄復(fù)制為新目錄 docs.bak,保持文件屬性,并復(fù)制所有的文件,包括以句點(diǎn)開(kāi)頭的隱藏文件。為了方便起見(jiàn),-a 選項(xiàng)暗含 -R 選項(xiàng)。

  ♦ cp -i —— 如果要把文件復(fù)制到已經(jīng)存在的一個(gè)相同的文件的目錄下,默認(rèn)時(shí),舊文件將被覆蓋。 -i 選項(xiàng)可以讓命令交互,換句話說(shuō),在覆蓋之前詢(xún)問(wèn)用戶(hù)。

  ♦ cp -v —— 帶有 -v (verbose)選項(xiàng),cp命令將告訴用戶(hù)正在做什么。很多Linux命令都帶有具有相同意義的 -v 選項(xiàng)。

3973417