我在检查存档 tar.xz 中未压缩的大小而不提取整个存档时遇到问题。 我知道对于 tar.gz 我可以使用 gzip 或 zcat 但对于 tar.xz 它不起作用。
有什么建议如何做到这一点吗?
xz -l file.xz
将以人类可读的方式(KiB MiB 后缀)为您提供存档的压缩/未压缩大小,而无需实际解压缩(无 CPU 或磁盘负载)。但它不会列出 tar 存档内的文件。
xz -lv file.xz
很详细,您可以对其进行过滤以获取准确的大小(以字节为单位)。
tar tvfa <file>
将为您提供一个包含文件大小的列表。详情请查看man tar
。您还应该注意,文件大小并不等于磁盘使用情况,因为文件的一部分可以占用完整的文件系统块。
基于 Lucas 的答案,您可以使用
--robot
标志到 xz
来干净地编写脚本:
uncomp_size=$(xz --robot --list "${local_file}" | grep ^totals | cut -f5)