
Linux cp 命令
Linux 中的 cp(英文全称:copy file)命令主要用于复制文件或目录。
通过该命令,用户可以将文件或目录从一个位置复制到另一个位置,并可以选择保留原始文件的属性(如权限、时间戳等信息)。
语法格式
cp [参数] 源路径 目标路径 或 cp [options] source dest
其中,source 表示需要复制的源文件或目录路径,dest 表示复制后存放的目标路径。
常用参数说明:
-
-r或-R:递归复制整个目录及其子目录内容(用于复制文件夹时使用)。 -
-i:启用交互模式,在覆盖已有文件前会提示用户确认。 -
-f:强制执行复制操作,若目标文件存在则直接覆盖而不提示。 -
-v:显示详细的复制过程信息。 -
-p:保留文件原有属性,如权限、时间戳等。 -
-a:归档模式,相当于-dpR组合,保留所有属性并递归复制目录。 -
-u:更新模式,仅当源文件比目标文件新时才执行复制。 -
-l:创建硬链接而非实际复制文件。 -
-s:建立符号链接(软链接),而不是复制文件本身。
使用示例
1. 将文件复制到指定目录
cp file.txt /path/to/destination/
表示将当前目录下的 file.txt 文件复制到 /path/to/destination/ 路径下。
2. 复制并重命名文件
cp file.txt /path/to/destination/newfile.txt
将 file.txt 文件复制至目标目录并将其重命名为 newfile.txt。
3. 递归复制整个目录
cp -r /path/to/source_dir /path/to/destination/
此命令会将 source_dir 及其内部所有内容完整地复制到 destination 目录中。
4. 启用交互确认模式复制
cp -i file.txt /path/to/destination/
如果目标路径下已存在同名文件,系统会询问是否覆盖。
5. 保留文件属性进行复制
cp -p file.txt /path/to/destination/
复制文件的同时保留其原始权限和时间戳等属性。
6. 更新模式复制文件
cp -u file.txt /path/to/destination/
只有在源文件比目标路径中的文件更新时才会执行复制操作。
7. 显示详细复制信息
cp -v file.txt /path/to/destination/
运行时输出复制过程的详细信息。
8. 创建硬链接或软链接
cp -l file.txt /path/to/destination/ # 创建硬链接 cp -s file.txt /path/to/destination/ # 创建符号链接
9. 一次复制多个文件到目标目录
cp file1.txt file2.txt /path/to/destination/
将多个文件同时复制到指定目录中。
10. 利用通配符批量复制
cp *.txt /path/to/destination/
复制当前目录下所有以 .txt 结尾的文件到目标目录。
11. 配合 find 命令复制特定类型文件
find /path/to/source -name "*.log" -exec cp {} /path/to/destination/ \;查找所有 .log 文件并复制到目标目录。
以上是 cp 命令的一些常见用法。你可以通过 man cp 查看更详细的帮助文档。
使用注意事项
- 若目标路径为目录,则源文件或目录会被复制进该目录中。
- 若目标路径是一个具体文件名,则源文件将被复制并重命名为该名称。
- 在复制目录时,必须添加
-r或-R参数,否则命令将失败。 - 默认情况下,如果目标文件已存在,
cp会直接覆盖它(除非启用了-i参数)。










