Из-за некорректного написания сценариев некоторые файлы, предназначенные для архивирования, были сжаты пять или шесть раз. Итак, есть такие файлы:
a_log_file_0.log.1.tar.gz.tar.gz.tar.gz.tar.gz.tar.gz
Пожалуйста, как мне исправить такие проблемные файлы?
Вам нужно будет разархивировать все уровни tar, которые были применены к вашему файлу. Если ваш файл был создан чем-то вроде
tar czf a_log_file_0.log.1.tar.gz a_log_file_0.log.1
tar czf a_log_file_0.log.1.tar.gz.tar.gz a_log_file_0.log.1.tar.gz
...
вы можете разархивировать его шаг за шагом следующим образом:
tar xzf a_log_file_0.log.1.tar.gz.tar.gz.tar.gz.tar.gz.tar.gz
tar xzf a_log_file_0.log.1.tar.gz.tar.gz.tar.gz.tar.gz
tar xzf a_log_file_0.log.1.tar.gz.tar.gz.tar.gz
---
Вы можете убедиться, что файлы tar.gz не содержат других вещей, которые могут испортить вашу систему,tar
ed в неправильное место, возможно, перезапись важных данных.
Вы можете убедиться, что у вас достаточно места на диске, куда вы извлекаете несколько уровней tar-файлов.
вы можете удалить промежуточные извлеченные версии ваших файлов.
Если вы сделали это вручную для нескольких таких файлов tar и только если вы уверены, что в каждом архиве tar с gzip-редактированием есть только один файл, вы можете автоматизировать многоуровневое извлечение следующим образом:
file=a_log_file_0.log.1.tar.gz.tar.gz.tar.gz.tar.gz.tar.gz
cp $file /tmp/
cd /tmp/
while echo $file | grep -n \\.tar\\..gz
do
zfile=${file%.tar.gz}
tar xzf $file
rm $file
file=$zfile;
done
Если имена неожиданно отличаются от имен в этой короткой строке, это не сработает - намеренно, потому что структура архива с несколькими tar не такая, как ожидалось.
Удачи при извлечении!