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选项