Linux cp 命令

最后修改时间:2026年5月17日

cp 是 Linux/Unix 中用于复制文件和目录的 shell 命令,常用于备份配置文件、复制项目目录、批量复制文件,以及在覆盖前进行确认。

cp 命令语法

源路径复制到目标路径

$ cp [options] source dest

cp 命令选项

常用选项如下:

选项 描述
cp -a 归档复制,尽量保留权限、时间戳和符号链接等属性。
cp -f 必要时先删除目标文件,再强制复制。
cp -i 交互模式,覆盖目标文件前先询问。
cp -l 创建硬链接,而不是复制文件内容。
cp -L 跟随符号链接,复制链接指向的实际文件。
cp -n 不覆盖已存在的目标文件。
cp -R 递归复制目录及其内容。
cp -u 仅当源文件比目标文件新,或目标不存在时复制。
cp -v 显示复制过程中的详细信息。

cp 命令示例

将单个文件main.c复制到目标目录bak

$ cp main.c bak

 

将 2 个文件 main.cdef.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 命令生成器

选择 cp 选项,然后点击“生成命令”按钮:

选项
强制复制(-f)
交互式-覆盖前询问(-i)
链接文件(-l)
跟随符号链接(-L)
无覆盖(-n)
递归目录树副本(-R)
更新较新的文件(-u)
显示详细过程(-v)
 
文件/文件夹
源文件/文件夹:
目标文件夹/文件:
 
输出重定向
 
 

单击文本框可选择命令,然后复制到终端执行:

 

常见问题

  1. cp 如何复制整个目录? 复制目录时需要使用 -R-r,例如 cp -R src backup
  2. 覆盖文件前如何先询问? 使用 cp -i source dest,目标文件已存在时会提示是否覆盖。
  3. cp -u 适合什么场景? cp -u 只在源文件较新或目标不存在时复制,适合做简单的增量备份。

也可以看看

广告

Linux 命令
站点信息