手动将文件添加到 tar

手动将文件添加到 tar

我在网络上有大量 txt.gz 文件,我想将它们解压缩并放入 tgz 中。我有足够的磁盘空间来存放所有压缩文件,但没有足够的空间来存放解压缩的文件。

我脑子里的想法是

tar -czf output.tgz --daemon
while read filename
do
    wget ftp://server/path/$filename.gz
    gunzip $filename.gz
    tar --add-to-daemon ./$filename
    rm $filename
done
tar --close-daemon

有没有办法做到这一点?

答案1

tar无法修改压缩文件:

$ tar Ajf archive1.tgz archive2.tar
tar: Cannot concatenate compressed archives

$ tar rjf archive1.tgz file.txt
tar: Cannot update compressed archives

如果没有足够的空间存放未压缩的文件,我认为你就无法做到这一点。

答案2

您可以轻松地以相反的方式执行此操作,将文本文件单独 gzip 压缩,然后直接将它们打包成 tar,而无需另外压缩 tar 文件。tar 有连接档案或将文件附加到档案的选项,但您需要测试它们是否适用于已压缩的档案,因为您没有空间来处理完整的、未压缩的输入。

相关内容