首页/数据/备份与容灾速查/tar 提取单个文件

tar 提取单个文件

不必解开整个归档:tar 可按路径或通配提取指定文件,配合 -C 输出到指定目录,是误删恢复场景的常用手法。

备份与容灾速查数据更新于 2026-10-13

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 层目录
通配提取按模式匹配多个成员,行为随版本略有差异
保留旧文件避免覆盖已存在文件

使用要点

  • 提取前先列目录:确认路径中是否带前缀目录,避免匹配不到
  • 先解到临时目录核对内容,再决定是否替换生产文件
  • 覆盖式提取会直接改写现有文件,关键文件替换前先留一份副本
  • 通配提取在不同版本行为略有差异,脚本中谨慎使用并加预演
  • 提取后核对文件权限与属主,避免恢复出的配置文件权限过宽
提取前先用列表模式确认路径;通配提取在不同版本行为略有差异,脚本中谨慎使用并配合预演确认匹配结果。

典型恢复流程

  • 确认归档时间点:选择误删之前最近的一份归档
  • 列出归档内容并定位目标文件路径
  • 解包到临时目录,核对内容与时间戳
  • 确认无误后再替换生产文件,并保留原文件副本

易错点

  • 路径匹配以归档内记录的完整名字为准,可能带前缀目录导致匹配失败
  • 覆盖式提取会直接改写现有文件,先提取到临时目录核对再替换
  • 解包到当前目录造成文件散落,脚本中应始终显式指定目标目录
  • 恢复出的文件属主与权限与原环境不一致,服务启动时读取失败

数据来源与参考

  • GNU tar 手册(提取指定成员、--strip-components)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌