tar 提取单个文件是什么
不必解开整个归档:按路径或通配从归档中提取指定文件,配合目录切换选项输出到指定位置,这是误删恢复场景最常用的手法。相比整包解压,它节省时间与空间,也能避免把旧文件覆盖到不该覆盖的位置。
基本信息
| 前提 | 先用列表模式确认归档内的实际路径 |
|---|---|
| 路径匹配 | 以归档内记录的完整名字为准 |
| 输出位置 | 用目录切换选项指定,避免污染当前目录 |
| 层级调整 | 可去掉前若干层目录,便于把文件放到目标位置 |
按路径提取
按路径提取
tar -tzf /backup/site-2026-10-12.tar.gz | grep nginx.conf
# 提取到临时目录核对
tar -xzf /backup/site-2026-10-12.tar.gz -C /tmp/restore var/www/site/conf/nginx.conf
# 去掉前两层目录,直接把文件放到目标位置
tar -xzf /backup/site-2026-10-12.tar.gz -C /tmp/restore --strip-components=2 var/www/site/conf/nginx.conf常用提取参数
| 参数 | 作用 |
|---|---|
| 列表模式 | 不解包查看归档内容 |
| 目录切换 | 指定解包目标目录 |
| 去掉层级 | 提取时丢弃前 N 层目录 |
| 通配提取 | 按模式匹配多个成员,行为随版本略有差异 |
| 保留旧文件 | 避免覆盖已存在文件 |
使用要点
- 提取前先列目录:确认路径中是否带前缀目录,避免匹配不到
- 先解到临时目录核对内容,再决定是否替换生产文件
- 覆盖式提取会直接改写现有文件,关键文件替换前先留一份副本
- 通配提取在不同版本行为略有差异,脚本中谨慎使用并加预演
- 提取后核对文件权限与属主,避免恢复出的配置文件权限过宽
提取前先用列表模式确认路径;通配提取在不同版本行为略有差异,脚本中谨慎使用并配合预演确认匹配结果。
典型恢复流程
- 确认归档时间点:选择误删之前最近的一份归档
- 列出归档内容并定位目标文件路径
- 解包到临时目录,核对内容与时间戳
- 确认无误后再替换生产文件,并保留原文件副本