计算机网络/计算机科学与应用/系统/运维/开发

linux cp复制文件/目录命令

cp命令 复制文件/目录


语法:

cp [-adfilprsu]   源文件(source)     目标文件(destination)

cp [options选项]   source1  source2  source3...   directory(目录)


选项:

-a:相当于 -dr  --preserve=all (preserve保存的意思)
-d:若源文件为链接文件的属性(link file)则复制链接文件属性而非文件本身
-f:强制(force)的意思,若目标文件以及存在且无法开启,则删除后再尝试一次。
-i:若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用)
-l:进行硬链接(hard link)的链接文件建立,而非复制文件本身。
-p:连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用)
-r:递归复制,用于目录的复制操作(常用)
-s:复制成为符号链接(symbolic link) “快捷方式”
-u:destination 比source 旧才更新destination 或 destination不存在的情况下才复制


例子1:切换到zth身份,将家目录下的.bashrc复制到/tmp下并更名为bashrc

[zhaotianhao@MiWiFi-R3-srv ~]$ cp ~/.bashrc /tmp/bashrc


# 在重复一次操作,加上-i选项 会提示一句存在bashr 是否覆盖 输入y/n确认

[zhaotianhao@MiWiFi-R3-srv ~]$ cp -i ~/.bashrc /tmp/bashrc cp:是否覆盖"/tmp/bashrc"?


例子2:切换到目录/tmp 并将/var/log/wtmp 复制到 /tmp 并观察属性

[root@MiWiFi-R3-srv ~]# cd /tmp/ 
[root@MiWiFi-R3-srv tmp]# cp /var/log/wtmp . 
[root@MiWiFi-R3-srv tmp]# ls -l /var/log/wtmp wtmp  
-rw-rw-r--. 1 root utmp 9600 10月 27 21:29 /var/log/wtmp 
-rw-r--r--. 1 root root 9600 10月 27 22:09 wtmp


cp 不加任何选项的情况下,文件的某些属性/权限会改变,文件的建立时间也发生改变


实例:那如果需要将文件的所有特性都一起复制过来呢?可以加上 -a 选项

[root@MiWiFi-R3-srv tmp]# cp -a /var/log/wtmp wtmp_2
[root@MiWiFi-R3-srv tmp]# ls -l /var/log/wtmp wtmp_2  
-rw-rw-r--. 1 root utmp 9600 10月 27 21:29 /var/log/wtmp 
-rw-rw-r--. 1 root utmp 9600 10月 27 21:29 wtmp_2

现在,源文件和复制后的文件一模一样


例子3:复制/etc/这个目录下的所有内容到/tmp下面

[root@MiWiFi-R3-srv tmp]# cp /etc/ /tmp cp: 略过目录"/etc/"


注意:如果是目录则不能直接复制 ,必须加上-r的选项

[root@MiWiFi-R3-srv tmp]# cp -r /etc/ /tmp 
[root@MiWiFi-R3-srv tmp]#


注意:

-r 是可以复制目录,但是,文件与目录的权限可能会被改变

所以,还可以利用 【cp -a  /etc  /tmp】命令执行,特别是在备份的情况下,这里-a 选项等同于-dr选项


cp 复制 拷贝

人生在世,不如意事十之八九;人生的滋味,哪怕是酸甜或苦辣,也要靠自己去品。人活一口气:气质看一个人的过去,气度看一个人的未来

评论

^