基础复制:cp
命令
cp
(copy)是Linux最直接的复制命令,适合本地文件或目录的快速操作。
基础语法
cp [选项] 源文件 目标路径
常用选项
选项 | 作用 | 示例 |
---|---|---|
-r |
递归复制目录(必选) | cp -r dir1/ dir2/ |
-i |
覆盖前提示确认(防误删) | cp -i file1.txt backup/ |
-v |
显示复制详情(可视化过程) | cp -v *.log logs/ |
-u |
仅复制更新的文件(增量备份) | cp -u source/* backup/ |
-p |
保留文件属性(权限、时间戳) | cp -p config.cfg /etc/ |
典型场景示例
- 复制单个文件
cp report.txt ~/backup/ # 将report.txt复制到用户backup目录
- 复制目录(含子内容)
cp -r photos/ /mnt/disk/ # 递归复制整个photos目录到磁盘
- 复制多个文件
cp *.jpg *.png images/ # 复制所有.jpg和.png文件到images目录
⚠️ 风险提示:直接使用
cp
会静默覆盖同名文件!建议搭配-i
选项或提前用ls
检查目标路径。
高级复制:rsync
命令
rsync
适用于复杂需求,如远程同步、增量备份、大文件传输等,支持断点续传和压缩。
基础语法
rsync [选项] 源路径 目标路径
核心选项
选项 | 作用 | 示例 |
---|---|---|
-a |
归档模式(保留所有属性+递归复制) | rsync -a project/ backup/ |
-z |
压缩传输(节省带宽) | rsync -az data/ remote:/backup/ |
--progress |
显示实时进度 | rsync -a --progress largefile.iso /mnt/ |
--delete |
同步删除目标多余文件(谨慎使用!) | rsync -a --delete src/ dest/ |
-e ssh |
通过SSH加密传输 | rsync -a -e ssh user@server:/home/ /local/ |
典型场景示例
- 本地目录同步(增量备份)
rsync -a ~/Documents/ /backup/docs/ # 仅同步修改过的文件
- 远程服务器复制
rsync -azP -e ssh /data/ user@192.168.1.100:/remote/data/ # -P显示进度
- 排除特定文件
rsync -a --exclude="*.tmp" source/ target/ # 跳过所有.tmp文件
安全操作建议
- 先预览后操作:
rsync
用-n
选项模拟执行(不实际复制):rsync -anv source/ target/ # 查看哪些文件会被同步
- 重要数据备份:
覆盖前建议备份目标目录:cp -r /target /target_backup # 创建临时备份
- 权限问题处理:
若提示Permission denied
,在命令前加sudo
获取管理员权限。
如何选择命令?
- 日常小文件复制 →
cp
(简单高效) - 大文件/跨网络/增量备份 →
rsync
(功能全面)
💡 经验提示:
- 使用
tab
键自动补全路径,避免输错文件名。- 定期清理
~/.bash_history
中的敏感命令(如含密码的rsync
)。
通过规范操作和工具组合,可高效管理文件同时规避数据风险,建议在实际操作前阅读命令手册(man cp
或 man rsync
)深化理解。
引用说明:
- GNU Coreutils 手册(
cp
命令): https://www.gnu.org/software/coreutils/manual/ rsync
官方文档: https://download.samba.org/pub/rsync/rsync.1
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4812.html