一、简介
cp(英文全拼:copy)命令是用于复制文件或目录使用。
通过cp命令,用户可以将指定的文件或目录从一个位置复制到另一个位置,同时还可以通过添加特殊参数,复制的同时可以保留原始文件的属性。
二、语法
语法:cp [选项]... 源文件... 目录
参数说明:
参数 | 说明 |
-r或-R | 递归复制目录及其内容(用于复制目录) |
-i | 交互模式,覆盖前提示用户确认 |
-f | 强制复制,覆盖目标文件而不提示 |
-v | 显示详细的复制过程(verbose) |
-p | 保留文件的原始属性(如权限、时间戳等) |
-a | 归档模式,等同于 -dpR,保留所有文件属性和递归复制目录 |
-u | 仅当源文件比目标文件新时才复制(更新模式) |
-l | 创建硬链接而不是复制文件 |
-s | 创建符号链接(软链接)而不是复制文件 |
三、实战
1、复制文件到指定目录
[]2、复制指定文件,并重新命名
[]3、递归复制目录
[]将 abc目录及其目录的内容递归复制到soft目录中。
4、交互式复制
[]如果目标目录有同名文件存在,则会提示是否要覆盖。
[root@app01 app]# cp -i abc.txt /app/softcp:是否覆盖”/app/soft/abc.txt”? y
5、保留文件属性复制
[]使用该参数复制文件时,会保留其原始权限及用户归属信息
6、仅当源文件比目标文件新时才复制
[][]aaa[][]aaa
上面操作发现当目标目录中的abc.txt内容比源文件abc.txt内容新,使用-u参数执行复制后,没有进行复制。
当源文件内容比目的地文件内容更新时,才会进行复制覆盖操作。如下:
[]aaabbbbccccc[]aaa[]cp:是否覆盖"/app/soft/abc.txt"? y[]aaabbbbccccc
当源文件abc.txt内容比目标文件新时才进行复制。
7、显示复制的过程
[]"test.txt" -> "/app/soft/test.txt"
8、创建硬链接或符号链接,不复制文件
[root app]# cp -l file.txt /path/to/destination/
# 创建硬链接[root app]# cp -s file.txt /path/to/destination/
# 创建符号链接
-l(硬链接):与源文件共用空间,不额外占用磁盘
-s(符号链接):占用少量空间存储路径信息
9、复制多个文件到指定目录
[]10、使用通配符复制文件
[]复制所有以.txt结尾的文件到指定目录。
以上只是 cp 命令的一些常见用法,大家可以通过 man cp 命令查看更多选项和用法。