Linux中复制文件或目录的核心命令是cp,单文件复制直接指定源路径和目标路径,目录复制需加-r选项,-i可防覆盖,-a能完整保留元数据,通配符和-u、-v等选项支持批量与增量操作。

在 Linux 中复制文件或目录到指定位置,核心命令是 cp,用法直接、稳定,但不同场景需搭配对应选项才能正确执行。
复制单个文件到目标目录
最基础的操作:只需指定源文件路径和目标目录路径。系统会自动保留原文件名。
- 例如把
/home/user/report.txt复制到/tmp/:cp /home/user/report.txt /tmp/ - 若想在复制时重命名(如备份配置),可指定目标文件名:
cp /etc/nginx.conf /etc/nginx.conf.bak - 目标目录必须存在且有写权限;否则报错“no such file or directory”
复制整个目录到指定位置
目录不能像文件一样直接复制,必须加 -r(递归)选项,否则会提示“omitting directory”。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 例如把项目目录
myapp/完整复制到/backup/:cp -r myapp/ /backup/ - 注意末尾斜杠:
myapp/表示复制目录内容进目标,myapp(无斜杠)则会在目标下新建同名目录 - 若目标路径已存在同名目录,
cp -r会把源目录作为子目录嵌套进去
安全复制:防误覆盖与属性保留
日常操作中,两个选项能显著降低风险并提升一致性:
-
-i:覆盖前询问。适合处理重要配置或日志文件,避免静默覆盖cp -i config.ini /etc/ -
-a:归档模式,等效于-dpr,保留权限、所有者、时间戳、软链接等全部元数据cp -a /var/www/ /backup/www-full/(推荐用于完整备份) - 单独用
-p可保留权限和时间戳,但不递归,适合单个关键文件
批量复制与实用技巧
多个文件或按条件复制时,可组合使用通配符或选项:
- 一次复制多个文件到同一目录:
cp file1.log file2.log file3.log /var/log/archive/ - 只复制更新过的文件(节省时间,适合日志轮转):
cp -u *.log /backup/daily/ - 显示每一步操作,便于确认或排查:
cp -av project/ /mnt/external/(-v显示过程,-a保证完整)

















