我在网络上有大量 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 有连接档案或将文件附加到档案的选项,但您需要测试它们是否适用于已压缩的档案,因为您没有空间来处理完整的、未压缩的输入。