cp
功能:复制文件(夹)或目录
常用选项:
-a 归档
-b 目标文件存在创建备份,备份文件是文件名跟~
-f 强制复制文件或目录
-r 递归复制目录
-p 保留原有文件或目录属性
-i 覆盖文件之前先询问用户
-u 当源文件比目的文件修改时间新时才复制
-v 显示复制信息
-s 创建软连接
-u 创建硬链接
示例:
1. 复制一个源文件到目标文件夹
这个是使用频率最多的命令,负责将一个源文件复制到目标文件夹下
[root@zmkjedu71 ~]# cp /etc/passwd ./
[root@zmkjedu71 ~]# ls
anaconda-ks.cfg install.log.syslog 公共的 视频 文档 音乐
install.log passwd 模板 图片 下载 桌面
2. 同时复制多个文件到目标文件下
命令格式为:cp 源文件1 源文件2 目标文件夹 或 cp 文件* 目标文件夹
[root@zmkjedu71 ~]# mkdir zmkjedu71
[root@zmkjedu71 ~]# touch book.sql
[root@zmkjedu71 ~]# touch a.txt
[root@zmkjedu71 ~]# touch b.txt
[root@zmkjedu71 ~]# cp book.sql a.txt b.txt zmkjedu71
[root@zmkjedu71 ~]# cd zmkjedu71/
[root@zmkjedu71 zmkjedu71]# ls
a.txt book.sql b.txt
3.利用通配符复制多个文件
[root@zmkjedu71 zmkjedu71]# ls
a.txt book.sql b.txt
[root@zmkjedu71 zmkjedu71]# mkdir test
[root@zmkjedu71 zmkjedu71]# cp *.txt test/
[root@zmkjedu71 zmkjedu71]# cd test/
[root@zmkjedu71 test]# ls
a.txt b.txt
[root@zmkjedu71 test]#
4. 修改文件名
在备份文件的时候最为有用
[root@zmkjedu71 zmkjedu71]# touch passwd
[root@zmkjedu71 zmkjedu71]# ls
passwd
[root@zmkjedu71 zmkjedu71]# cp passwd passwd.bak
[root@zmkjedu71 zmkjedu71]# ls
passwd passwd.bak
[root@zmkjedu71 zmkjedu71]#
5. 递归复制
-r 表示递归
[root@zmkjedu71 ~]# cp -r ./* zmkjedu71/
cp: 无法将目录"./zmkjedu71" 复制到自己"zmkjedu71/zmkjedu71"
你将上级目录复制到子目录,是行不通的
[root@zmkjedu71 ~]# ls
anaconda-ks.cfg book.sql install.log passwd 公共的 视频 文档 音乐
a.txt b.txt install.log.syslog zmkjedu71 模板 图片 下载 桌面
[root@zmkjedu71 ~]# cd zmkjedu71/
[root@zmkjedu71 zmkjedu71]# ls
anaconda-ks.cfg book.sql install.log passwd 公共的 视频 文档 音乐
a.txt b.txt install.log.syslog zmkjedu71 模板 图片 下载 桌面
6. 创建文件的软连接
命令格式: cp -s 源文件和目标文件
相当于创建快捷方式
[root@zmkjedu71 ~]# mkdir test
[root@zmkjedu71 ~]# cd test/
[root@zmkjedu71 test]# cp -s /etc/passwd a.txt
[root@zmkjedu71 test]# ls
a.txt
[root@zmkjedu71 test]# md5sum a.txt /etc/passwd
132ce30504d9c7cd331fb80dba09367f a.txt
132ce30504d9c7cd331fb80dba09367f /etc/passwd
[root@zmkjedu71 test]# ll
总用量 0
lrwxrwxrwx. 1 root root 11 5月 24 06:36 a.txt -> /etc/passwd
[root@zmkjedu71 test]#
7. -a 参数可以让被复制的两个文件时间一样
[root@zmkjedu71 test]# ls
b.txt
[root@zmkjedu71 test]# ll
总用量 4
-rw-r--r--. 1 root root 2335 5月 24 06:38 b.txt
[root@zmkjedu71 test]# cp b.txt b1.txt
[root@zmkjedu71 test]# cp -a b.txt b2.txt
[root@zmkjedu71 test]# ll
总用量 12
-rw-r--r--. 1 root root 2335 5月 24 06:41 b1.txt
-rw-r--r--. 1 root root 2335 5月 24 06:38 b2.txt
-rw-r--r--. 1 root root 2335 5月 24 06:38 b.txt
8. -t 复制多个文件到某个目录
这种方式 -t后面直接跟目录
[root@zmkjedu71 test]# mkdir beifen
[root@zmkjedu71 test]# ls
b1.txt b2.txt beifen b.txt
[root@zmkjedu71 test]# cp -t beifen b1.txt b2.txt
[root@zmkjedu71 test]# cd beifen/
[root@zmkjedu71 beifen]# ls
b1.txt b2.txt
[root@zmkjedu71 beifen]#
总结:
cp命令和MV在用法上是有一定区别的,尤其是在通配符的使用上。