如何计算tar.gz文件中的文件数(不解压缩)?

use*_*287 10 compression parallel-processing gzip tar

我有一个tar.gz文件,我是由pigz(并行gzip)制作的.我想计算压缩文件中的文件数而不解压缩.

我用这个命令:

tar -tzf file.tar.gz
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

tar: This does not look like a tar archive
tar: Skipping to next header
Run Code Online (Sandbox Code Playgroud)

是因为我使用了pigz而不是gzip?如果是的话,我现在怎么算这些呢?

提前致谢.

jdi*_*ver 17

由于它是tar和gzip存档,因此您应该使用z选项来使用gzip.然后,你可以简单地计算行数wc.

tar -tzf file.tar.gz | wc -l
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以使用 tar -vv 详细选项两次以获得完整详细信息,然后 grep 文件权限中的第一个字符。^ 表示仅匹配第一个字符(行首)。grep -c 选项计算行数。

drwxrwx--x   directory
lrwxrwxrwx   symlink
-rw-rw----   file
Run Code Online (Sandbox Code Playgroud)

只计算常规文件

gzip -cd file.tar.gz | tar -tvv | grep -c ^-
Run Code Online (Sandbox Code Playgroud)