如何高效使用copirdir参数备份Ubuntu文件?
- 内容介绍
- 文章标签
- 相关推荐
再看常见痛点,为什么备份总是出错?
在 Ubuntu 上进行文件或目录备份时使用者最常遇到的困扰包括:
- 误删或覆盖:复制时不小心把已有文件给覆盖了。怎么说呢,
- 属性丢失:备份后文件的所有者、权限、时间戳等信息不完整。
- 效率低下:大批量目录复制时速度慢,甚至卡住。
- 难以排除无关文件:想要跳过临时文件或缓存,却找不到合适的参数。
cp 命令基础:复制目录的正确姿势
Ubuntu中最常用的复制工具是 cp而并不存在真正意义上的 copirdir 参数。通过合理组合 cp 的选项,就能实现“copirdir”式的高效备份。
递归复制整个目录
cp -r /path/to/source /path/to/destination
-r会把 source 目录下的所有子目录和文件全部复制到 destination。如果目标目录已存在内容会直接写入并覆盖同名文件。
从保留文件属性来看,-p 与 -a
-p 选项会保留所有者、权限、时间戳等元数据。
更强大的归档模式:
-a 等价于 -dR --preserve=all不仅递归。还完整保留符号链接、设备文件还有所有属性,是备份程序目录的首选。
再看交互式防误删。-i 与 -f 的取舍
cp -i -r /src /dst
-i 在每次可能覆盖已有文件时提示确认,适合手动操作;而 -f则直接强制覆盖,适用于脚本化批量任务。务必根据实际需求选择,
从显示复制过程来看。-v 提高可视化体验
-v会把每个被复制的方法输出到终端,帮助你实时监控进度,尤其在大目录时非常有用。
进阶技巧这方面。模拟 copirdir 的高效备份方案
1. 使用 GNU Parallel 并行复制多个独立目录
parallel cp -a {} /backup/{/} ::: /data/* /logs/* /configs/*
将多个根目录并行拷贝,可明显提高整体备份速度。注意控制并发数(-j N),防止磁盘 I/O 饱和。
2. 排除不需要的文件或子目录:--exclude
rsync -av --exclude='*.tmp' --exclude='cache/' /src/ /dst/
rsync 原生支持排除规则,比单纯的 cp --exclude 更灵活。推荐在需要过滤大量临时文件时使用。
3. 只复制目录结构而不带内容:find + mkdir 组合
cd /src
find . -type d -exec mkdir -p "/dst/{}" \;
This creates an empty replica of source tree—useful when你只想保存层级结构而不是实际数据。
TAR 打包压缩:程序级别完整备份方案
If you need a one‑click snapshot of whole Ubuntu system,tar is go‑to tool.
sudo tar -czpf /backup/ubuntu-$.tar.gz \
--exclude=/proc --exclude=/sys --exclude=/dev \
/
- -c 创建新归档;-z 使用 gzip 压缩;-p 保留权限,-f 指定输出文件。
- Sensible exclusions 防止把虚拟文件程序打进去导致恢复出错。怎么说呢,
- TAR 生成的是单一压缩包。更易于迁移与长期存储,
使用注意事项与常用方法
-
检查硬盘空间:执行任何大规模复制前,用
确认目标分区有足够余量。按理说, -
方法验证:COPY 前先执行
ls -ld /src && ls -ld /dst确保源/目标方法无误。避免“把根目录复制进自己”之类的灾难性错误。 -
Avoid accidental overwrite:If you must overwrite existing files。always加上
-i或先做一次 dry‑run(使用 rsync 的-n,--dry-run) 检查将要变动的列表。 -
Cron 定时任务:Painless 自动化可以写入 crontab。例如每日凌晨 2 点执行增量 rsync 备份:
0 2 * * * rsync -a --delete --exclude='*.log' \ /home/user/ :/mnt/backup/ - LVM 快照+rsync:If your data resides on LVM,可以先创建快照再 rsync,以保证一致性且不会锁定正在写入的应用。按理说,
再看快速参考表,常用 cp 参数对照
| 参数 | 作用 |
|---|---|
| -r 或 -R | 递归复制整个目录树 |
| -a | 归档模式,相当于 -dR --preserve=all。推荐用于完整备份 |
| -p | 保留所有者、权限、时间戳 |
| -v | 显示详细过程,让你看到每个被复制的方法 | -i | 交互式提示,防止意外覆盖 | -f | 强制覆盖,无提示 | * 注意:No such thing as “copirdir” option. 通过组合上述参数就可以相同功能。* |
让备份从“恐惧”变成“安心”
再看常见痛点,为什么备份总是出错?
在 Ubuntu 上进行文件或目录备份时使用者最常遇到的困扰包括:
- 误删或覆盖:复制时不小心把已有文件给覆盖了。怎么说呢,
- 属性丢失:备份后文件的所有者、权限、时间戳等信息不完整。
- 效率低下:大批量目录复制时速度慢,甚至卡住。
- 难以排除无关文件:想要跳过临时文件或缓存,却找不到合适的参数。
cp 命令基础:复制目录的正确姿势
Ubuntu中最常用的复制工具是 cp而并不存在真正意义上的 copirdir 参数。通过合理组合 cp 的选项,就能实现“copirdir”式的高效备份。
递归复制整个目录
cp -r /path/to/source /path/to/destination
-r会把 source 目录下的所有子目录和文件全部复制到 destination。如果目标目录已存在内容会直接写入并覆盖同名文件。
从保留文件属性来看,-p 与 -a
-p 选项会保留所有者、权限、时间戳等元数据。
更强大的归档模式:
-a 等价于 -dR --preserve=all不仅递归。还完整保留符号链接、设备文件还有所有属性,是备份程序目录的首选。
再看交互式防误删。-i 与 -f 的取舍
cp -i -r /src /dst
-i 在每次可能覆盖已有文件时提示确认,适合手动操作;而 -f则直接强制覆盖,适用于脚本化批量任务。务必根据实际需求选择,
从显示复制过程来看。-v 提高可视化体验
-v会把每个被复制的方法输出到终端,帮助你实时监控进度,尤其在大目录时非常有用。
进阶技巧这方面。模拟 copirdir 的高效备份方案
1. 使用 GNU Parallel 并行复制多个独立目录
parallel cp -a {} /backup/{/} ::: /data/* /logs/* /configs/*
将多个根目录并行拷贝,可明显提高整体备份速度。注意控制并发数(-j N),防止磁盘 I/O 饱和。
2. 排除不需要的文件或子目录:--exclude
rsync -av --exclude='*.tmp' --exclude='cache/' /src/ /dst/
rsync 原生支持排除规则,比单纯的 cp --exclude 更灵活。推荐在需要过滤大量临时文件时使用。
3. 只复制目录结构而不带内容:find + mkdir 组合
cd /src
find . -type d -exec mkdir -p "/dst/{}" \;
This creates an empty replica of source tree—useful when你只想保存层级结构而不是实际数据。
TAR 打包压缩:程序级别完整备份方案
If you need a one‑click snapshot of whole Ubuntu system,tar is go‑to tool.
sudo tar -czpf /backup/ubuntu-$.tar.gz \
--exclude=/proc --exclude=/sys --exclude=/dev \
/
- -c 创建新归档;-z 使用 gzip 压缩;-p 保留权限,-f 指定输出文件。
- Sensible exclusions 防止把虚拟文件程序打进去导致恢复出错。怎么说呢,
- TAR 生成的是单一压缩包。更易于迁移与长期存储,
使用注意事项与常用方法
-
检查硬盘空间:执行任何大规模复制前,用
确认目标分区有足够余量。按理说, -
方法验证:COPY 前先执行
ls -ld /src && ls -ld /dst确保源/目标方法无误。避免“把根目录复制进自己”之类的灾难性错误。 -
Avoid accidental overwrite:If you must overwrite existing files。always加上
-i或先做一次 dry‑run(使用 rsync 的-n,--dry-run) 检查将要变动的列表。 -
Cron 定时任务:Painless 自动化可以写入 crontab。例如每日凌晨 2 点执行增量 rsync 备份:
0 2 * * * rsync -a --delete --exclude='*.log' \ /home/user/ :/mnt/backup/ - LVM 快照+rsync:If your data resides on LVM,可以先创建快照再 rsync,以保证一致性且不会锁定正在写入的应用。按理说,
再看快速参考表,常用 cp 参数对照
| 参数 | 作用 |
|---|---|
| -r 或 -R | 递归复制整个目录树 |
| -a | 归档模式,相当于 -dR --preserve=all。推荐用于完整备份 |
| -p | 保留所有者、权限、时间戳 |
| -v | 显示详细过程,让你看到每个被复制的方法 | -i | 交互式提示,防止意外覆盖 | -f | 强制覆盖,无提示 | * 注意:No such thing as “copirdir” option. 通过组合上述参数就可以相同功能。* |

