2010-07-09 11:58:42 +0000 2010-07-09 11:58:42 +0000
67
67

Команда "gzip" папку?

Я новичок в командной строке Мака. Как создать gzip папки в Mac OS X? Несколько человек сказали мне, что если вы хотите создать gzip папки, вы должны сначала ‘tar’ ее, а затем ‘gzip’ ее. Правильно ли это?

Ответы (6)

132
132
132
2010-07-09 12:10:37 +0000

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

tar -czf folder\_name.tar.gz folder\_name/

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

gzip file.txt

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

14
14
14
2015-03-25 02:35:06 +0000

Если кто-то все еще находит этот вопрос при поиске “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
4
4
2010-07-09 12:03:04 +0000

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

tar czvf compressed.tar.gz folder
3
3
3
2010-07-09 22:42:42 +0000

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

gzip file.txt

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

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

3
3
3
2010-07-09 12:04:07 +0000

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

tar -czf archiv.tar.gz mydir/

распаковать ваш архив:

tar -xzf archiv.tar.gz
1
1
1
2010-07-09 12:04:43 +0000

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

Похожие вопросы

12
7
5
15
4