核心复制命令详解
cp 命令(基础文件/目录复制)
-
基础语法
cp [选项] 源文件 目标路径 -
常用选项
| 选项 | 作用 |
|——|——|
|-r或-R| 递归复制目录(必用于目录操作) |
|-i| 覆盖前提示确认(防误删) |
|-v| 显示复制进度(可视化操作) |
|-p| 保留文件属性(权限、时间戳) |
|-u| 仅复制源中更新的文件(增量复制) | -
典型场景示例
# 复制文件到目录 cp file.txt /backup/ # 将file.txt复制到/backup目录 # 递归复制目录(含子内容) cp -r photos/ /media/backup/ # 复制photos目录到/media/backup # 保留属性并提示覆盖 cp -pi source.conf /etc/ # 复制时保留属性,若目标存在则询问 # 批量复制匹配文件 cp *.log /logs/ # 复制所有.log文件到/logs目录
rsync 命令(高级同步工具)
适用场景:大文件传输、远程同步、增量备份。
-
基础语法
rsync [选项] 源路径 目标路径 -
关键选项
| 选项 | 作用 |
|——|——|
|-a| 归档模式(保留所有属性,递归同步) |
|-z| 压缩传输(节省带宽) |
|--progress| 显示实时进度 |
|--delete| 删除目标中多余文件(镜像同步) | -
典型场景示例
# 本地目录同步(保留属性) rsync -av ~/documents/ /backup/documents/ # 同步~/documents到备份目录 # 远程服务器复制(需SSH配置) rsync -azv /data/ user@remote:/backup/ # 压缩同步/data到远程服务器 # 增量备份(仅更新修改过的文件) rsync -au source/ destination/ # 仅复制源中新增或更新的文件
关键注意事项与安全实践
-
覆盖风险预防
- 使用
-i选项(如cp -i)避免静默覆盖文件。 - 执行前用
ls检查目标路径,ls /backup/确认目录内容。
- 使用
-
权限问题处理
- 若提示
Permission denied,在命令前加sudo(需管理员权限)。 - 用
-p保留权限(如cp -p),或用chmod事后调整。
- 若提示
-
大文件/网络传输优化
- 优先用
rsync -z压缩数据,减少传输时间。 - 使用
nohup后台运行:nohup rsync -av largefile /backup/ &
- 优先用
-
数据完整性验证
- 复制后运行
md5sum 源文件 目标文件对比校验值。
- 复制后运行
场景速查表
| 需求 | 命令示例 |
|---|---|
| 快速复制文件 | cp file1.txt /target/ |
| 备份目录(保留属性) | cp -rp ~/photos /backup/ |
| 同步到远程服务器 | rsync -azv data/ user@host:/backup/ |
| 增量更新目录 | rsync -au src/ dest/ |
| 安全覆盖文件 | cp -i config.conf /etc/ |
- 简单复制 → 用
cp(尤其小文件或单次操作)。 - 复杂同步 → 用
rsync(适合大文件、远程或增量需求)。 - 始终验证:操作后检查文件完整性,重要数据提前备份(如
tar -cvzf backup.tar.gz /data)。
引用说明基于Linux核心工具手册(GNU Coreutils)及rsync官方文档,遵循POSIX标准,实践建议来自Linux系统管理最佳实践(Red Hat, Ubuntu等发行版指南)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9914.html