Команда «gzip» для папки?

66

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

thndrkiss
источник
1
Это не вопрос программирования? Ваш пост помечен, objective-cно вы спрашиваете о командной строке.
rakuo15

Ответы:

130

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

tar -czf имя_папки.tar.gz имя_папки /

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

gzip file.txt

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

taskinoor
источник
30
Стоит упомянуть, для чего предназначены параметры -czfпосле tar: cуказывает, что вы хотите создать архив tar, zприменяется gzipк промежуточному архиву tar и fотносится к последующему окончательному имени файла folder_name.tar.gz.
Фидели
13
Предупреждение: gzip file.txtзаменяет оригинальный файл.
Золтан
6
@ Zoltán Используйте, gzip -k file.txtчтобы «сохранить» (не удалять) входной файл.
thohl
13

Если кто-то все еще находит этот вопрос при поиске «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текстовых файлах команды concats. Единственным недостатком является то, что ваши файлы должны быть дополнены .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 - сжатая папка .tar.gz
jcubic
источник
3

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

tar -czf archiv.tar.gz mydir/

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

tar -xzf archiv.tar.gz
Тиль Фрейер
источник
3

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

gzip file.txt

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

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

Миро А.
источник
1
gzip --keep file.txtсохраню оригинал и создам file.txt.gz. См gzip --help.
Блейз
1

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

Роман Чепляка
источник