Команда "gzip" папку?
Я новичок в командной строке Мака. Как создать gzip папки в Mac OS X? Несколько человек сказали мне, что если вы хотите создать gzip папки, вы должны сначала ‘tar’ ее, а затем ‘gzip’ ее. Правильно ли это?
Я новичок в командной строке Мака. Как создать gzip папки в Mac OS X? Несколько человек сказали мне, что если вы хотите создать gzip папки, вы должны сначала ‘tar’ ее, а затем ‘gzip’ ее. Правильно ли это?
Tar - инструмент архивации, а gzip - инструмент сжатия. Для того, чтобы сжать полный каталог, сначала необходимо архивировать его в один файл. Это и есть работа tar, а затем вы сжимаете архивный файл. Вы можете выполнить обе задачи в одной команде tar с соответствующей опцией.
tar -czf folder\_name.tar.gz folder\_name/
Если вы не хотите делать tar-архив (может быть, вы хотите сжать только один файл), то вы можете использовать команду gzip напрямую.
gzip file.txt
Она создаст сжатый файл под названием file.txt.gz
Если кто-то все еще находит этот вопрос при поиске “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
Надеюсь, вы найдете мое руководство полезным :)
Чтобы добавить в ответ @taskinoor: если вы используете версию для одного файла, также известную как
gzip file.txt
знайте, что исходный файл (file.txt) будет удален, и у вас будет только file.txt.gz
Я бы поставил это в качестве комментария, но у вас недостаточно кармы, чтобы сделать это :=).
Да, сначала вы должны запомнить каталог. Команда tar может сделать и то, и другое:
tar -czf archiv.tar.gz mydir/
распаковать ваш архив:
tar -xzf archiv.tar.gz
Да, это верно. gzip
может сжимать только файл. tar
кодирует содержимое каталога в один файл, который может быть дополнительно сжат с помощью gzip
, bzip2
, lzma
или чего-нибудь еще.