tar 文件比使用 -T 选项和文件列表的原始文件大得多。为什么?

tar file much bigger than original files with use -T option and file list. Why?

现在我正在测试 tar 命令。

我运行 2 命令如下。

tar zcvf test1.tar.gz -C ./tar_dir .
tar zcvf test2.tar.gz -C ./tar_dir -T /file_list.txt

tar_dir 大小约为 200MB,有大约 10000 个文件。 file_list.txt 具有 tar_dir 目录的所有文件列表以及相对路径。所以 test1.tar.gz 和 test2.tar.gz 有相同的文件。但尺寸差异太大。 test1.tar.gz 约为 130MB,test2.tar.gz 约为 1.5GB。

我不明白。我确定 test1.tar.gz 和 test2.tar.gz 有相同的文件。为什么这两个文件的大小不同?

我认为 tar 文件实际上并不包含相同的文件...也许 file_list.txt 中的路径有误...

您可以执行类似以下命令的操作来找出 test2.tar.gz 中的内容而不是 test1.tar.gz

中的内容

sdiff -s <(tar -tf test1.tar.gz| sed 's/^.///g'| 排序) <(tar -tf test2.tar.gz | 排序)

test1.tar.gz 的“sed”旨在删除文件前面的“./”,以便相关地比较两个 tar 文件列表,排序是为了对它们进行排序.

希望对您有所帮助。