1. 程式人生 > >linux基本命令——cp

linux基本命令——cp

bsp body blog linux 目錄 linux基本命令 用戶家目錄 歸檔 dmi

cp(選項)(參數) 復制
當復制多個源文件時,目標必須是個目錄。
cp命令默認使用會帶上-i選項,當目標已有文件時,會詢問用戶是否覆蓋掉,可以用\cp來取消-i選項

-a:將文件的所有屬性都一並復制,用於歸檔文件。,以後還有歸檔壓縮的命令
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,如果目標文件或目錄都存在直接覆蓋

[root@bogon admin]# cp -f a/c b/ 
cp: overwrite `b/c‘? y
強制復制也會提示詢問用戶是否覆蓋,可以用[root@bogon admin]# \cp -f a/c b/ 
[root@bogon admin]# 

-i:如果目標文件或目標目錄都存在,詢問用戶是否覆蓋

[root@bogon admin]# cp -i a/c b/
cp: overwrite `b/c‘? y
這也是cp命令默認的方式
[root@bogon admin]# alias cp
alias cp=‘cp -i‘

-l:對源文件建立硬連接,復制源文件的innode號,而非復制文件;

[root@bogon admin]# cp /a a
[root@bogon admin]# cp -l /a aa
[root@bogon admin]# ls -li /a a aa          加上-i顯示出文件的inode號
139923 -rwxr-xr-x. 1 root root 0 Dec 22 01:45 a          這個是直接復制過來的文件
 12090 -rwxrwxrwx. 2 root root 0 Dec 22 00:55 /a       這貨是源文件
 12090 -rwxrwxrwx. 2 root root 0 Dec 22 00:55 aa      這個是通過cp -l復制過來的文件

-P:保留源文件或目錄的屬性;

[root@bogon admin]# cp aa /
[root@bogon admin]# ls -l aa /aa
-rwxrwxrwx. 1 admin admin 0 Dec 22 00:55 aa
-rwxr-xr-x. 1 root  root  0 Dec 22 01:13 /aa
以root用戶為例,當我復制admin用戶家目錄下的aa文件到根目錄下時,文件的屬主和屬組變成了root。
[root@bogon admin]# cp -p aa /
cp: overwrite `/aa‘? y
[root@bogon admin]# ls -l aa /aa
-rwxrwxrwx. 1 admin admin 0 Dec 22 00:55 aa
-rwxrwxrwx. 1 admin admin 0 Dec 22 00:55 /aa
當加上-p選項後,復制完成後的文件屬主和屬組沒有發生變化,還是原來的admin
這個-p貌似對原文件屬主屬組為root的無效???

-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一並復制;

[root@bogon admin]# cp -rv b c
`b‘ -> `c/b‘
`b/c‘ -> `c/b/c‘
`b/c/d‘ -> `c/b/c/d‘
`b/c/d/e‘ -> `c/b/c/d/e‘

-s:對源文件建立符號連接,而非復制文件;

[root@bogon admin]# cp -s /a aa
[root@bogon admin]# ls -l aa
lrwxrwxrwx. 1 root root 2 Dec 22 01:32 aa -> /a

-b:覆蓋已存在的文件目標前將目標文件備份;

[root@bogon admin]# cp -bv /a a
cp: overwrite `a‘? y
`/a‘ -> `a‘ (backup: `a~‘)
[root@bogon admin]# ls -l a*
-rwxr-xr-x. 1 root root 0 Dec 22 01:42 a
-rwxrwxrwx. 2 root root 0 Dec 22 00:55 a~

-v:顯示操作過程

上面都已經顯示過了

linux基本命令——cp