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


106

您好可以从.tar备份还原单个文件吗?我不想还原总备份。我只想从备份中还原一个文件。

Answers:


128

1.使用命令行tar

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

示例:假设您etc/apt/sources.list要从中获取文件etc.tar

tar -xf etc.tar etc/apt/sources.list

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

  • 您可以使用-tlisting选项代替grep来查找所需文件的路径,而不是-xgrep一起使用
  • 您还可以提取一个目录
  • tar还有其他选项,例如--wildcards,等等,用于更高级的部分提取方案;看到man tar

2.使用存档管理器解压缩

从Nautilus中的“存档管理器”中打开tar,进入文件夹层次结构以找到所需的文件,然后解压缩该文件。

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

3.使用Nautilus / Archive-Mounter

右键单击Nautilus中的tar,然后选择“使用ArchiveMounter打开”。

tar现在看起来类似于左侧的可移动驱动器,您可以像普通驱动器一样浏览/导航,并将所需的任何文件拖放/复制/粘贴到任何位置。


3
有什么方法可以跳过第一个初始目录。特别是当我不知道名字的时候?就像一个通配符目录。
CMCDragonkai 2014年

您能告诉我这是否加载到整个tar文件中吗?因为当我尝试对文件(/etc/network/interfaces)执行此操作时,它可以正常工作,但是工具老化了。我停止了程序,但文件已解压缩。
Christophe De Troyer

1
对我来说关键的一步是使用the full stored path of the file。这样./filename工作,但是filename不行。
Niloct

4
@ChristopheDeTroyer Tarball的压缩方式是,您必须将其完全解压缩,然后取出所需的文件。我认为.zip文件夹不同,因此,如果您希望能够快速取出单个文件,请尝试使用它们。
GKFX

您能否添加有关使用Midnight Commander进行操作的更多信息?
beppe9000
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.