核心命令:cp
(复制文件/目录)
基本语法:
cp [选项] 源文件 目标路径
常用选项:
选项 | 作用 | 示例 |
---|---|---|
-r |
递归复制目录(必需) | cp -r dir1/ dir2/ |
-i |
覆盖前提示确认(防误删) | cp -i file.txt backup/ |
-v |
显示复制详情(可视化过程) | cp -v *.jpg /photos/ |
-u |
仅复制更新的文件(增量备份) | cp -u source/* backup/ |
-p |
保留权限、时间戳等属性 | cp -p config.cfg backup/ |
-a |
归档模式(保留所有属性+递归) | cp -a project/ backup/ |
典型场景示例:
- 复制文件到目录:
cp report.txt ~/documents/ # 将report.txt复制到documents目录
- 复制并重命名:
cp old_name.txt new_name.txt # 复制后重命名
- 批量复制匹配文件:
cp *.log /backup/ # 复制所有.log文件到backup目录
进阶工具:rsync
(远程/增量复制)
适用于大文件或网络传输,支持断点续传和差异同步。
基本语法:
rsync [选项] 源路径 目标路径
关键选项:
-a
:归档模式(保留属性+递归)-z
:压缩传输(节省带宽)-P
:显示进度+断点续传--delete
:同步删除目标多余文件
示例:
rsync -azP ~/photos/ user@server:/backup/photos/ # 压缩同步到远程服务器
特殊场景处理
- 复制软链接(符号链接):
- 默认复制链接指向的文件:
cp -L link.txt dest/
- 仅复制链接本身:
cp -P link.txt dest/
- 默认复制链接指向的文件:
- 保留文件属性:
使用cp -a
或rsync -a
保留权限、时间戳等。 - 排除特定文件(
rsync
专属):rsync -a --exclude="*.tmp" source/ dest/ # 忽略.tmp文件
注意事项与安全建议
- 覆盖风险:
- 目标路径存在同名文件时,
cp
会静默覆盖!建议用-i
选项(如alias cp="cp -i"
添加到~/.bashrc
)。
- 目标路径存在同名文件时,
- 权限问题:
- 复制系统文件需
sudo
权限(如sudo cp /etc/config ~/backup/
)。
- 复制系统文件需
- 验证结果:
复制后用ls -l 目标路径
检查文件属性和大小。 - 重要数据备份:
敏感操作前建议备份:cp -a original/ original_backup/
为什么命令行比图形界面更高效?
- 批量操作:通配符( )快速处理大量文件。
- 自动化脚本:可将复制命令嵌入脚本定时执行(如备份任务)。
- 资源占用低:无图形开销,尤其适合服务器环境。
引用说明: 参考 GNU Coreutils 官方文档(cp、rsync)及 Linux man-pages 技术手册,实践前建议通过
man cp
或man rsync
查看本地帮助。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8639.html