用途

cp除了复制功能之外还可以建立快捷方式

 

全称

cp的全称为copy

 

参数

-a :相当于同时指定参数pdr

-d :若文件为链接文件的属性(link file),则复制链接文件属性而非档案本身

-f :强制的意思(force),若目标档案已经存在且无法开启,则移除后再尝试一次

-i :若目标文件存在,在覆盖的时会先询问动作的进行

-l :进行硬式连结的接档链接,而非复制档案本身

-p :连同档案的默认属性一起复制,而非使用默认属性

-r :递归持续复制,用于目录的复制行为

-s :复制成为符号链接文件,即快捷方式

-u :若destination比source旧才更新

 

案例

范例一:用root身份,将家目录下的.bashrc复制到/tmp目下,并且修改名称为bashrc,并且使用i参数

[root@bigdata ~]# cp .bashrc /tmp/bashrc 将家目录下的.bashrc复制到/tmp目下,并且修改名称为bashrc

[root@bigdata ~]# cp -i .bashrc /tmp/bashrccp:是否覆盖"/tmp/bashrc"? n为不覆盖,y为覆盖

范例二:变换目录到/tmp下,并将/etc/host.conf文件复制到该目录下

复制前:

[root@bigdata tmp]# ls -l /var/log/btmp 查看文件属性

-rw-------. 1 root utmp 768 8月   6 21:52 /var/log/btmp

复制 : 

[root@bigdata tmp]# cp /var/log/btmp . 复制文件btmp到当前目录

复制后:

[root@bigdata tmp]# ls -l btmp 查看复制的文件属性

-rw-------. 1 root root 768 8月   7 22:21 btmp

我们从绿色标记部分可以看出,明显变化

添加参数复制:

[root@bigdata tmp]# cp -a /var/log/btmp .cp:是否覆盖"./btmp"? y

[root@bigdata tmp]# ls -l btmp-rw-------. 1 root utmp 768 8月   6 21:52 btmp

 

范例三:复制/etc/这个目录下的所有内容到/tmp底下

[root@bigdata tmp]# cp /etc /tmp cp: 略过目录"/etc"

出现这种情况就需要加参数r来进行复制

[root@bigdata tmp]# cp -r /etc /tmp 也可以使用a参数(cp -a /etc /tmp

 

范例四:建立一个连接档(快捷方式)

[root@bigdata tmp]# cp -s bashrc bashrc_link
[root@bigdata tmp]# ls -l bashrc*
-rw-r--r--. 1 root root 176 8月   7 22:08 bashrc

lrwxrwxrwx. 1 root root   6 8月   7 22:39 bashrc_link –> bashrc bashrc_link为快捷方式

范例五:若~/.bashrc比tmp/barshrc新才复制过来

[root@bigdata tmp]# cp -u ~/.bashrc /tmp/bashrc

 

范例六:通过复制快捷方式来查看d参数作用

[root@bigdata tmp]# cp bashrc_link bashrc_link1 一般复制,不加参数d,则复制了源文件

[root@bigdata tmp]# cp -d bashrc_link bashrc_link2 复制了快捷方式

[root@bigdata tmp]# ls -l bashrc*-rw-r--r--. 1 root root 176 8月   7 22:08 bashrc

lrwxrwxrwx. 1 root root   6 8月   7 22:39 bashrc_link -> bashrc

-rw-r--r--. 1 root root 176 8月   7 22:47 bashrc_link1

lrwxrwxrwx. 1 root root   6 8月   7 22:47 bashrc_link2 -> bashrc

范例七:多个数据文件复制到同一个目录

例如现在目录tmp下存在文件1.txt,2.txt,3.txt(3个文件均为文空件)

[root@bigdata tmp]# cp /tmp/1.txt /tmp/2.txt /tmp/3.txt /usr/local/sbin/
[root@bigdata tmp]#
cd /usr/local/sbin/[root@bigdata sbin]# ll总用量

-rw-r--r--. 1 root root         0 8月   7 22:53 1.txt

-rw-r--r--. 1 root root         0 8月   7 22:53 2.txt

-rw-r--r--. 1 root root         0 8月   7 22:53 3.txt

我们可以看到已经成功复制文件

 


作者:奔跑的金鱼