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 文件列表,排序是为了对它们进行排序.
希望对您有所帮助。
现在我正在测试 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 文件列表,排序是为了对它们进行排序.
希望对您有所帮助。