58

Я новичок в Mac командной строки. Как создать GZIP-папку в Mac OS X? Несколько человек сказали мне, что если вы хотите создать gzip-файл папки, вы должны сначала «распаковать» его, а затем «gzip». Это правильно?

6 ответов6

118

Tar - это инструмент архивирования, а gzip - инструмент сжатия. Чтобы сжать полный каталог, сначала вам нужно заархивировать его в один файл. Это то, что работа является смолой. а затем вы сжимаете архивированный файл. Вы можете выполнить обе задачи в одной команде tar с соответствующей опцией.

tar -czf folder_name.tar.gz folder_name/

Если вы не хотите создавать архив tar (возможно, вы хотите сжать только один файл), вы можете напрямую использовать команду gzip.

gzip file.txt

Это создаст сжатый файл с именем file.txt.gz

12

Если кто-то все еще находит этот вопрос при поиске "gzip in Mac", я написал руководство, которое может пригодиться кому-то еще. Здесь это идет:

сжимающий

Самая простая команда сожмет файл filename.ext а затем заменит его на filename.ext.gz в том же каталоге.

gzip filename.ext

Если вы не хотите потерять свой исходный файл, вам нужно передать вывод gzip -c в файл.

gzip -c filename.ext > anotherfile.gz

Мы также можем сжимать со стандартного ввода, чтобы мы могли сжимать вывод других команд.

cat filename.ext | gzip > anotherfile.gz

OS X также поставляется с командами compress и uncompress . Они делают "умнее" gzip, поскольку он не сжимает файл, если он будет расти после процесса сжатия. Следующая команда заменяет filename.ext на filename.ext.Z в том же каталоге.

compress filename.ext

Декомпрессия

Чтобы восстановить файл в его несжатом естественном состоянии, вы можете использовать gzip или другие оболочки. Режим распаковки gzip вызывается с флагом -d . Этот режим заменит файл filename.ext.gz на filename.ext в том же каталоге. Есть также ярлык, называемый gunzip , который сделает то же самое.

gzip -d filename.ext.gz
gunzip filename.ext.gz

Мы также можем передать распакованный файл на стандартный вывод, чтобы сохранить его в другом файле.

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

Другим быстрым способом чтения содержимого gzip в стандартный вывод является zcat , он в основном аналогичен вызову gzip -cd но вы можете вызывать несколько файлов и объединять их так же, как команда cat выполняет конкатенацию текстовых файлов. Единственным недостатком является то, что ваши файлы должны иметь суффикс с .Z суффикс для его работы ...

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

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

cat filename.ext.gz | zcat

Это очень полезно, если вам нужно очень быстро проверить содержимое файла, и вы даже можете легко сохранить вывод zcat в файл.

cat filename.ext.gz | zcat > anotherfile

uncompress обертка работает как gzip -cd , но он ищет файлы с.Z расширение, чтобы заменить их в текущем каталоге, поэтому вам нужно только указать имя файла, который вы хотите восстановить, но это нормально, если вы вызываете его с помощью.Z расширение, так как программа будет игнорировать его.

compress filename.ext
uncompress filename.ext

Я надеюсь, что вы найдете мое руководство полезным :)

4

MacOS X - Unix, так что это должно работать (это работает на GNU/Linux)

tar czvf compressed.tar.gz folder
3

Чтобы добавить к ответу @taskinoor: если вы используете одну версию файла, иначе

gzip file.txt

Помните, что исходный файл (file.txt) будет удален, и у вас будет только file.txt.gz.

Я бы назвал это комментарием, но у меня недостаточно кармы, чтобы сделать это:=)

3

Да, вы должны сначала сделать tar каталог. Команда tar может выполнять оба действия:

tar -czf archiv.tar.gz mydir/

распакуйте архив:

tar -xzf archiv.tar.gz
1

Да, это правильно. gzip может только сжать файл. tar кодирует содержимое каталога в один файл, который может быть дополнительно сжат с помощью gzip , bzip2 , lzma или чего-либо еще.

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