核心复制命令详解
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