如何从 tar 存档中提取特定文件?

rɑː*_*dʒɑ 137 command-line archive backup files tar

是否可以从 .tar 备份中恢复单个文件?我不想恢复总备份。我只想从备份中恢复一个文件。

ish*_*ish 168

1. 使用命令行tar

是的,只需在 tarball 名称后提供文件的完整存储路径。

示例:假设您想要etc/apt/sources.list来自etc.tar以下文件的文件:

tar -xf etc.tar etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

将在当前目录下提取sources.list并创建etc/apt目录。

  • 您可以使用-t列表选项代替-x,也许与grep一起使用来查找所需文件的路径
  • 您还可以提取单个目录
  • tar有其他选项,如--wildcards等,用于更高级的部分提取场景;看man tar

2. 用存档管理器解压

在 Nautilus 的存档管理器中打开 tar,进入文件夹层次结构以找到您需要的文件,然后将其解压缩。

  • 在服务器或命令行系统上,使用基于文本的文件管理器(例如 Midnight Commander ( mc))来完成相同的操作。

3. 使用 Nautilus/Archive-Mounter

右键单击 Nautilus 中的 tar,然后选择 Open with ArchiveMounter。

tar 现在将类似于左侧的可移动驱动器,您可以像普通驱动器一样浏览/导航它,并将您需要的任何文件拖/复制/粘贴到任何目的地。

  • @ChristopheDeTroyer Tarball 的压缩方式是您必须完全解压缩它们,然后取出您想要的文件。我认为 .zip 文件夹是不同的,因此如果您想快速取出单个文件,请尝试使用它们。 (5认同)
  • 有什么方法可以跳过第一个初始目录。尤其是当我不知道它的名字时?像一个像通配符目录。 (3认同)