获取压缩文件的压缩大小并重定向到 /dev/null?

获取压缩文件的压缩大小并重定向到 /dev/null?

我有一个压缩文件,在压缩或解压缩时,我想获取它的最终压缩大小(用于压缩)或原始压缩大小(用于解压缩)。

我以前用过wc -c

$time xz -fc inputfile.tar | wc -c
1318524
2.132

但是,执行时间明显更长,因为我仍在将文件写入磁盘,而不是使用重定向到 /dev/null 时:

$ time xz -fc inputfile.tar > /dev/null
1.671

如何获得压缩大小 (1318524) 并将数据最终重定向到 /dev/null?

答案1

您应该使其对标准输入流进行操作,而不是xz对文件进行操作。这将在不写入数据的情况下获得文件大小:

cat inputfile.tar | xz -c | wc -c

相关内容