📜  tar 存档中的列表文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:05:29.324000             🧑  作者: Mango

tar 存档中的列表文件 - Shell/Bash

在 Linux 中,tar 命令用于创建和提取打包的文件。tar 存档文件(通常被命名为 .tar)是一个包含多个文件的单个文件。它们通常用于备份或分发文件集合。在某些情况下,你可能需要列出 tar 存档文件中的所有文件和目录。本文将向您介绍如何在 Shell/Bash 中列出 tar 存档文件。

列出存档中的文件

使用 tar 命令的 -tf 选项可以列出存档文件中的所有文件和目录。以下是使用 tar -tf 命令列出 .tar 存档文件中所有文件的示例:

tar -tf filename.tar

这会在终端中输出存档文件中的所有文件和目录,如果存档文件很大,可以通过配合管道命令 less 来分页:

tar -tf filename.tar | less
过滤列表

tar 命令的 -tf 选项可以接受各种参数以帮助您过滤列表。以下是一些示例:

只显示文件

您可以使用 -T 选项,将文件的列表放入单独的文本文件(称为列表文件),然后使用 -X 选项,在列表文件中过滤掉目录。例如:

tar -tf filename.tar --no-anchored '*.txt' -X dirlist.txt

此命令将仅列出 .tar 存档文件中以 .txt 结尾的文件,且列表文件 dirlist.txt 中应包含所有要排除的目录。

只显示目录

如果只想在列表中查看目录,则可以使用 grep 命令过滤。例如,可以使用以下命令:

tar -tf filename.tar | grep '/$'

这将在列表中显示所有目录。

结论

本文介绍了如何使用 tar -tf 命令列出存档文件中的所有文件和目录,并介绍了如何过滤列表以仅显示文件或目录。通过这些技巧,您可以更好地管理和使用存档文件。