如何从 tbz 中提取单个文件

Dav*_*542 5 tar bzip2

我有以下存档目录:

itunes20140618.tbz
Run Code Online (Sandbox Code Playgroud)

我想从中提取单个文件,称为:

itunes20140618/video
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

到目前为止,我正在做

$ bzip2 -d /tmp/itunes20140618.tbz 
Run Code Online (Sandbox Code Playgroud)

但它似乎为所有内容创建了一个 tar 目录。我将如何仅提取单个视频文件?

目前,如果我通过 tar 提取一个文件大约需要 1 分钟,然后在它完成读取 tar 存档时“挂起”另外 20 分钟。任何想法如何改善这一点?

mik*_*erv 7

tar -xvjf itunes20140618.tbz itunes20140618/video
Run Code Online (Sandbox Code Playgroud)

对于这种情况应该这样做,但是如果您需要更多帮助,请执行以下操作:

info tar
Run Code Online (Sandbox Code Playgroud)

要提取特定的存档成员,请将其确切的成员名称作为参数提供,如--list (-t). 如果您错误地删除了之前放置在存档中的文件之一collection.tar (例如blues),您可以从存档中提取它,而无需更改存档的结构。其内容将与blues您删除的原始文件相同。

首先,确保您在practice目录中,并列出目录中的文件。现在,删除文件 ,blues并再次列出目录中的文件。

您现在可以blues像这样从存档文件“collection.tar”中提取成员:

 $ tar --extract --file=collection.tar blues
Run Code Online (Sandbox Code Playgroud)

如果再次列出目录中的文件,您将看到该文件 blues已恢复,具有其原始权限、数据修改时间和所有者。 (这些参数将是相同的那些文件有当你最初放置它在存档;但是可能已经从文件系统中删除该文件之前作出的任何变化,将_not_已到归档构件制造) 的存档文件 ,collection.tar与提取blues. 您可以通过运行确认这一点tar--list (-t)