cp 命令
2024年11月1日大约 2 分钟
cp 命令用于在 Linux 和 Unix 系统中复制文件或目录,是常用的文件管理工具之一。它支持复制单个文件、多个文件以及目录,并可以选择性地保留文件的属性。
基本语法
cp [选项] 源文件 目标文件
cp [选项] 源文件1 源文件2 ... 目标目录
cp [选项] -r 源目录 目标目录常用选项
-r或-R:递归复制,用于复制整个目录。没有该选项时,cp默认只复制文件而不复制目录。-i:交互模式,如果目标文件已存在,会提示用户确认是否覆盖。-f:强制覆盖,即使文件有写保护,仍会强制复制并覆盖。-u:更新模式,仅在源文件比目标文件新或目标文件不存在时才复制。-p:保留文件属性,包括时间戳、权限、所有者等。-a:归档模式,等同于-dR --preserve=all,递归复制并保留所有属性。适合复制文件树。-v:详细输出模式,显示复制过程中的详细信息。
复制文件示例
复制单个文件
cp file1.txt file2.txt将
file1.txt复制为file2.txt,如果file2.txt已存在,默认会覆盖。复制多个文件到目录
cp file1.txt file2.txt /path/to/directory/将
file1.txt和file2.txt复制到指定目录/path/to/directory/下。递归复制目录
cp -r /source/directory /destination/directory将
/source/directory目录及其所有内容复制到/destination/directory中。交互模式
cp -i file1.txt /path/to/directory/如果
file1.txt已存在,会提示用户是否覆盖。保留文件属性
cp -p file1.txt /path/to/directory/复制
file1.txt到目标目录,保留文件的时间戳、权限和所有者信息。强制覆盖
cp -f file1.txt /path/to/directory/强制覆盖目标目录中已有的同名文件。
复制并显示详细信息
cp -v file1.txt file2.txt /path/to/directory/每复制一个文件就会显示一行复制信息。
注意事项
- 源文件和目标文件是否同名:当源文件和目标文件同名时,
cp命令默认会覆盖目标文件。 - 权限问题:某些文件或目录的复制可能需要超级用户权限。
- 数据完整性:可以结合
md5sum或diff命令校验复制结果的完整性。
综合示例
复制整个 /home/user/project 目录到 /backup/project,保留文件属性并显示详细信息:
sudo cp -a -v /home/user/project /backup/project这样 cp 命令就会在 /backup 下创建 project 目录,并且递归复制内容,保留所有文件的属性。