Восстановление неправильно сжатой папки / каталога и файлов

Вопрос или проблема

Мне нужно было сжать/архивировать папку, поэтому я выполнил следующую команду:

gzip -v --rsyncable --fast -r myFolder/ -c > myFolderArchive.gz

…глупо полагая, что это сделает именно то, что я подумал: архив myFolderArchive и его файлы рекурсивно. У него даже был приятный вывод:

./myFolder/file1 ... 80%
./myFolder/file2 ... 20%
...

Однако, открыв архив позже, я вижу в нем только один файл. Быстрый поиск помог мне понять мою ошибку: GZip (или, думаю, я сам) взял каждый файл, сжало его и поочередно объединяло их в один файл, по сути. Это привело к потере всей структуры файлов/каталогов.

Тем временем я выполнил rm -r для оригинальной папки. Теперь у меня остался только myFolderArchive.gz.

Кто-нибудь видит способ взять этот архив и, возможно, восстановить оригинальный набор файлов из содержимого myFolderArchive.gz, теперь когда все смешано в один GZipped файл?

Я все еще имею доступ к оригинальному диску (на ограниченное время) и мог бы попробовать восстановить хотя бы оригинальную структуру каталогов (файловая система ext4). Технически, содержимое/данные находятся в myFolderArchive.gz, их просто нужно будет правильно разрезать…

С вашей командой вы сжимаете каждый файл в каталоге и сохраняете вывод в одном файле. Так что вы перезаписываете содержимое, а не конкатенируете его. Команда gzip сжимает один файл. Вы можете использовать команду для сжатия всего каталога и всех файлов внутри:

tar cvzf myFolderArchive.tar.gz  myFolder/

или вы можете использовать zip

zip -r myFolderArchive.zip myFolder/

Ответ или решение

Восстановление утерянной структуры папок и файлов из архива myFolderArchive.gz

Ситуация, с которой вы столкнулись, связана с неправильным использованием команды gzip, что привело к потере структуры каталогов при сжатии файлов. В следствии выполненной команды были объединены содержимое всех файлов в один архив, сохранив только их данные, но утратив иерархию папок. Вот пошаговое руководство по восстановлению:

Понимание проблемы

При использовании команды:

gzip -v --rsyncable --fast -r myFolder/ -c > myFolderArchive.gz

вы компрессировали каждый файл в папке myFolder и записали результаты в один файл myFolderArchive.gz. Gzip в своем стандартном режиме не сохраняет метаданные о директориях и структуре, поэтому восстановление оригинальной иерархии при прямом излечении невозможно.

Порядок действий для восстановления

  1. Извлечение содержимого архива:
    Первым делом можно извлечь все данные, хранящиеся в myFolderArchive.gz. Для этого используйте следующую команду:

    gunzip -c myFolderArchive.gz > extracted_files

    Этот процесс создаст файл extracted_files, который будет содержать все данные из оригинальных файлов. Однако структура папок при этом утеряна.

  2. Реконструкция структура файлов:
    Поскольку файлы не содержат информации о своей первоначальной расположенности, вам потребуется сделать следующее:

    • Используйте возможность поиска по содержимому, если вы помните имена файлов или частично их названия.

    • Для начала рассмотрите команду strings, которая может помочь вам извлечь текстовые указания из двоичных данных:

      strings extracted_files > potential_file_names.txt
    • Анализируйте полученный файл на наличие имен файлов. Постарайтесь восстановить их при помощи логики или используя места, которые запоминались.

  3. Обратное извлечение данных:
    Если вы сумели извлечь названия файлов, создайте директории, соответствующие их изначальному расположению. После этого, используя split или другие подходящие инструменты, вы можете вручную извлекать и создавать файлы по их содержимому из extracted_files.

  4. Восстановление удалённых данных (при возможности):
    Если у вас есть доступ к оригинальному диску и у вас есть опыт работы с файловыми системами, вы можете воспользоваться утилитами для восстановления данных, такими как testdisk или photorec. Например, для использования testdisk, проделайте следующее:

    • Запустите testdisk и выполните сканирование вашего диска, чтобы найти удаленные файлы и директории.
    • Следуйте инструкциям утилиты для восстановления файлов, если это возможно.

Итоги

Ваша ситуация подчеркивает важность понимания инструментов для работы с архивами. Для последующего архивирования директории рекомендуется использовать комбинированные утилиты, которые сохраняют структуру директорий, такие как tar или zip. Например:

tar cvzf myFolderArchive.tar.gz myFolder/

или

zip -r myFolderArchive.zip myFolder/

Эти команды позволяют создать архив с сохранением всех иерархий каталогов и удобно использовать полученные архивы в будущем. Надеюсь, это руководство поможет вам успешно восстановить необходимые данные!

Оцените материал
Добавить комментарий

Капча загружается...