Я заархивировал 6 файлов (общий размер = 2 ГБ), используя gzip -c myfiles_* > ~/myzip.gzip на сервере A, и попросил моего друга скопировать этот сервер на сервер B. Теперь я узнал, что файл должен называться по имени .gz поэтому я переименовал файл, используя mv . Я проверил, что файл на сервере B имеет тот же размер, что и исходный файл .gzip на сервере A, что и сделал. Затем я запустил gunzip myzip.gz .

В результате получается не папка с моими файлами, а один файл с именем myfiles без каких-либо расширений. Размер файла равен размеру исходных файлов, поэтому все файлы были скомпилированы в этот единственный файл. Как мне теперь извлечь файлы снова из этого одного файла?

Как вы можете сказать, я все еще очень плохо знаком с Linux.

1 ответ1

1

Я заархивировал 6 файлов (общий размер = 2 ГБ) с помощью gzip -c myfiles_* > ~/myzip.gzip и попросил моего друга скопировать этот сервер на другой сервер. Теперь я узнал, что архив должен называться .gz поэтому я переименовал файл с помощью mv . Затем я запустил gunzip myzip.gz .

Результаты, которые вы видите, это именно то, что вы создали. GZip не сохраняет структуру каталогов при сжатии; он просто сжимает файлы / данные. Итак, когда вы запустили эту команду:

gzip -c myfiles_* > ~/myzip.gzip

Все, что сделал GZip, - это объединил все файлы, найденные с помощью myfiles_* в один большой двоичный объект и сжал их в ~/myzip.gzip . Тот факт, что расширение файла является неправильным, не имеет значения, поскольку простое переименование этого файла, как и вы, решит проблему, но основной архив по-прежнему представляет собой один большой блок файлов.

Что касается того, как восстановить это сейчас? Я уверен, что вы не можете, потому что проблема была в вашей первоначальной логике GZip. Единственная рекомендация, которую я бы вам сейчас дал, - это начать сначала с нуля и создать подобный архив TAR/GZipped.

Создание файла TAR/GZipped.

Сначала запустите команду TAR:

tar -cf myzip.tar myfiles_*

Это создаст новый архив TAR с именем myzip.tar который состоит из файлов, найденных системой с использованием шаблона myfiles_* .

Теперь, когда это сделано, вы можете GZip архив TAR следующим образом:

gzip myzip.tar

Это мой процесс обработки этого материала в Mac OS X, но если вы используете версию TAR GNU, которую использует большинство систем Linux, вы можете запустить эту команду, чтобы вместо этого объединить оба шага в один:

tar -cfz myzip.tar.gz

Обратите внимание, что дополнительные z в опциях? Это говорит TAR GZip архив при его создании.

Распаковка и разархивирование файла TAR/GZipped.

Как только это будет сделано, у вас будет новый архив с именем myzip.tar.gz . Перенесите это в любое нужное место, а затем распакуйте его с помощью команды TAR, например:

tar -xf myzip.tar.gz

В настоящее время TAR достаточно умен, чтобы обнаружить сжатие GZip как часть процесса разархивирования, поэтому он распаковывает архив TAR и затем извлекает содержимое этого архива TAR обратно на место, чтобы точно соответствовать структуре файлов и каталогов того, что было источником начинается с.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .