У меня есть тонна файлов 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
Есть ли способ сделать это?
Вы можете легко сделать это наоборот, сохранить свои текстовые файлы по отдельности в сжатом виде и просто скопировать их без дополнительного сжатия файла tar. У tar есть опции для объединения архивов или добавления файлов в архив, но вам нужно проверить, работают ли они с архивом, который уже сжат, поскольку у вас нет места для работы с полным, несжатым вводом. .
tar
не может изменять сжатые файлы:
$ tar Ajf archive1.tgz archive2.tar
tar: Cannot concatenate compressed archives
$ tar rjf archive1.tgz file.txt
tar: Cannot update compressed archives
Если недостаточно места для несжатых файлов, я думаю, что вы не можете сделать это.