Как уже упоминалось, gzip - это инструмент сжатия файла , а не инструмент архивирования. Он не может работать с каталогами. Когда вы запускаете его с -r
, он найдет все файлы в иерархии каталогов и сжимает их, т.е. заменяет path/to/file
на path/to/file.gz
. Когда вы передаете -c
, вывод gzip записывается в стандартный вывод вместо создания файлов. Фактически, вы создали один большой файл, содержащий несколько файлов, сжатых с помощью gzip.
Теперь вы можете найти номер заголовка / magi файла gzip c, который равен 1f8b
, а затем восстановить файлы вручную.
Разумно сейчас сделать для создания резервных копий (если вы еще этого не сделали). Бэкапы всегда помогают (особенно с такими проблемами как юорс). Создайте резервную копию вашего directory.gz
файла сейчас . Затем читайте дальше.
К счастью, есть более простой способ, чем восстановление всех файлов вручную: с помощью binwalk , служебной программы судебной экспертизы, которая может использоваться для извлечения файлов из других файлов. Я пробовал это с тестовым файлом, который был создан так же, как и ваш. Запуск binwalk -e file.gz
создаст папку со всеми извлеченными файлами. Ему даже удается восстановить исходное имя файла. Вероятно, иерархия каталогов потеряна. Но, по крайней мере, у вас есть содержимое ваших файлов и их имена. Удачи!
Помните: резервные копии необходимы.
(Для полноты картины: то, что вы, вероятно, собирались запустить: tar czf directory.tar.gz directory
, а затем tar xf directory.tar.gz
)