最后修改时间:2026年5月17日
cp 是 Linux/Unix 中用于复制文件和目录的 shell 命令,常用于备份配置文件、复制项目目录、批量复制文件,以及在覆盖前进行确认。
从源路径复制到目标路径:
$ cp [options] source dest
常用选项如下:
| 选项 | 描述 |
|---|---|
| cp -a | 归档复制,尽量保留权限、时间戳和符号链接等属性。 |
| cp -f | 必要时先删除目标文件,再强制复制。 |
| cp -i | 交互模式,覆盖目标文件前先询问。 |
| cp -l | 创建硬链接,而不是复制文件内容。 |
| cp -L | 跟随符号链接,复制链接指向的实际文件。 |
| cp -n | 不覆盖已存在的目标文件。 |
| cp -R | 递归复制目录及其内容。 |
| cp -u | 仅当源文件比目标文件新,或目标不存在时复制。 |
| cp -v | 显示复制过程中的详细信息。 |
将单个文件main.c复制到目标目录bak:
$ cp main.c bak
将 2 个文件 main.c 和 def.h 复制到绝对路径目录 /home/usr/rapid/:
$ cp main.c def.h /home/usr/rapid/
将当前目录中的所有C文件复制到子目录bak:
$ cp *.c bak
将目录 src 复制到绝对路径目录 /home/usr/rapid/:
$ cp -R src /home/usr/rapid/
递归复制目录 dev 中的所有文件和子目录到 bak:
$ cp -R dev bak
强制文件复制:
$ cp -f test.c bak
文件覆盖前的交互式提示:
$ cp -i test.c bak
cp: overwrite 'bak/test.c'? y
更新当前目录中的文件,只把较新的文件复制到目标目录 bak:
$ cp -u * bak
选择 cp 选项,然后点击“生成命令”按钮:
-R 或 -r,例如 cp -R src backup。
cp -i source dest,目标文件已存在时会提示是否覆盖。
cp -u 只在源文件较新或目标不存在时复制,适合做简单的增量备份。