cp 復制文件或目錄


1. 命令功能

cp --copy files and directories。復制文件或目錄。

2. 語法格式

cp  [option]  source des

cp  [option]  source   directory

cp  [option]  -t directory  source

參數

參數說明

-a

--archive 相當於drp結合使用

-d

如果文件為鏈接文件,復制鏈接文件的源文件而非鏈接文件

-r

遞歸復制目錄(包含目錄下的多級子目錄)

-p

連同文件的屬性一起復制過去,而非預設屬性

-f

force強制復制,若有重復或其他問題,不詢問使用者,而強制復制

-i

當目的文件已存在,在覆蓋前會先詢問是否真的復制

-s

復制成為符號鏈接文件,即“快捷方式”文件

-u

若destination比source舊才更新destination

-t

默認情況下命令格式為cp 源文件 目標文件,使用-t 可以顛倒順序 格式為 cp –t 目標文件 源文件

說明:當來源文件有兩個以上,則最后一個目的文件一定要是目錄才行。

3. 使用范例

基礎范例

范例1  cp –a,把源文件的全部屬性復制到目標目錄,不帶參數和代參數-a的比較。

[root@localhost home]# pwd

/home

[root@localhost home]# ls -l /home/cxf/test_cxf

-rw-rw-r--. 1 cxf cxf 12 Mar 13 18:05 /home/cxf/test_cxf

[root@localhost home]#

[root@localhost home]# cp /home/cxf/test_cxf /home/DIR/

[root@localhost home]# ls -l /home/DIR/test_cxf

-rw-r--r--. 1 root root 12 Mar 13 18:07 /home/DIR/test_cxf  #文件屬組發生了變化

[root@localhost DIR]# cp -a /home/cxf/test_cxf /home/DIR/

[root@localhost DIR]# ls -l test_cxf

-rw-rw-r--. 1 cxf cxf 12 Mar 13 18:05 test_cxf    #帶 –a參數 復制文件屬性

通過帶參數和不帶參數比較文件修改時間屬性:

[root@localhost DIR]# ls -lh /home/cxf/test_cxf

-rw-rw-r--. 1 cxf cxf 12 Mar 13 18:05 /home/cxf/test_cxf   #源文件修改時間屬性

[root@localhost DIR]# cp /home/cxf/test_cxf .

[root@localhost DIR]# ls -lh test_cxf

-rw-r--r--. 1 root root 12 Mar 13 22:27 test_cxf          #時間屬性發生變化、

[root@localhost DIR]# cp -p /home/cxf/test_cxf test_cxf_1  #復制文件並改名

[root@localhost DIR]# ls -lh test_cxf_1

-rw-rw-r--. 1 cxf cxf 12 Mar 13 18:05 test_cxf_1  #時間屬性沒有改變,故-a選項會連同文件屬性,時間屬性一同復制。

范例2 :-i參數實例

[root@localhost DIR]# cp -i /home/cxf/test_cxf .

cp: overwrite `./test_cxf'? y

[root@localhost DIR]# cp /home/cxf/test_cxf .  #為什么不帶-i,也提示?

cp: overwrite `./test_cxf'? y                  #由於centos默認為cp設置了別名在,

增加了-i的參數。

[root@localhost DIR]# alias cp

alias cp='cp -i'

在shell腳本中執行cp時,若沒有-i參數,則不會詢問是否覆蓋,由於命令行和shell腳本執行時的環境變量不同,在腳本中一般使用命令的全路徑。

范例3 使用-r參數復制目錄

[root@localhost home]# cp /root DIR/

cp: omitting directory `/root'   #復制root到DIR,提示會跳過目錄/root,復制不成功。

[root@localhost home]# cp /root DIR/ -r  #把root目錄復制到DIR目錄中

[root@localhost home]# ls -l DIR/

total 12

dr-xr-x---. 4 root root 4096 Mar 13 22:41 root  #復制root目錄成功

-rw-r--r--. 1 root root   12 Mar 13 22:34 test_cxf

-rw-rw-r--. 1 cxf  cxf    12 Mar 13 18:05 test_cxf_1

2. 技巧性范例

范例4 cp覆蓋文件前不提示是否覆蓋的幾種方法。

第一種:使用命令全路徑。

[root@localhost DIR]# cp /home/cxf/test_cxf .

cp: overwrite `./test_cxf'? y

[root@localhost DIR]# /bin/cp /home/cxf/test_cxf .

[root@localhost DIR]#

第二種:取消cp別名  unalias cp  重啟后失效

第三種:命令開頭使用反斜線(\)

[root@localhost DIR]# \cp /home/cxf/test_cxf .   #使用反斜線屏蔽系統別名。

[root@localhost DIR]#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM