无需解压,即可打开 tar.gz 格式的 pdf

无需解压,即可打开 tar.gz 格式的 pdf

我有一个 tar.gz,里面有 pdf,我想在不提取的情况下打开一个特定的 pdf,是否可以通过终端上的某些命令来实现(我知道我们可以使用 GUI 来实现,但我想使用终端)

答案1

要列出存档中的(未打开的)文件而不进行提取,请运行以下命令:

tar -tf myarchive.tar.gz

要提取并打开,直接运行以下命令:

tar -xzf myarchive.tar.gz && evince *.pdf

快速处理:(提取/tmp/mypdf然后移除)

mkdir /tmp/mypdf && tar -xzf myarchive.tar.gz -C /tmp/mypdf && cd /tmp/mypdf && evince *.pdf && cd .. && rm -r mypdf

myarchive.tar.gz您的示例档案名称在哪里。


用于提取特定文件

mkdir /tmp/mypdf && tar -xzf myarchive.tar.gz -C /tmp/mypdf "<file.pdf>" && cd /tmp/mypdf && evince *.pdf && cd .. && rm -r mypdf

其中"<file.pdf>"是您要提取并打开的特定文件的文件名。

希望对您有帮助。对于高级功能脚本命令来说,通过运行特定目的的脚本很有用。

答案2

要在单个命令行中执行此操作,您需要一个可以处理来自管道的输入的 pdf 查看器。我知道的唯一具有此选项的查看器是 ImageMagicks 的展示。它不是很舒服(较大的文件可能需要一段时间),但可能对你的目的来说很方便。

tar xOfz <archive> <path/to/file/in/archive> | display

(较大的 pdf 文件可能需要一段时间。)

答案3

无法在未解压的情况下打开。GUI 应用程序在打开文件之前会临时解压它们...

如果您有一个包含 PDF 文件的 tar.gz 文件,并且希望使用命令行提取一个或多个文件,则可以使用:

tar -xzf MyArchive.tar.gz MyPDF5.pdf

tar -xzf MyArchive.tar.gz MyPDF6.pdf MyPDF3.pdf

tar -xzf MyArchive.tar.gz "My PDF 128.pdf"

您还可以从档案中的文件夹提取一个文件(目录结构将被保留):

tar -xzf MyArchive.tar.gz "My Archive Folder/My Other PDF.pdf"

如果您不想保留目录结构,可以使用 --strip-components 后跟子文件夹的级别:

tar -xzf MyArchive.tar.gz "My Archive Folder/My Other PDF.pdf" --strip-components 1

tar -xzf MyArchive.tar.gz "e-Books/Favorites/Ubuntu Linux/My PDF about Ubuntu.pdf" --strip-components 3

请注意,如果您的存档文件名包含空格,也必须用双引号引起来。

在上面的例子中,我假设您位于包含存档文件的文件夹中,并且您希望在那里提取。

在使用 tar 命令之前,您应该使用“cd”命令转到要提取文件的文件夹。如果存档位于另一个文件夹中,只需输入其绝对完整路径 [“/home/myusername/Desktop/My Folder/My Other Archive.tar.gz”](在某些情况下使用相对路径也可能有用)。

PS:如果是简单的文本文件(txt),命令末尾的“-O”参数可能就是你要找的,但因为是PDF文件,所以没多大用处……根据答辩,ImageMagick 的“display”能够按照您希望的方式通过管道处理 PDF 输出。

tar -xzf MyArchive.tar.gz "My PDF 128.pdf" -O | display

相关内容