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


66

Я новачок у командних рядках Mac. Як створити gzip папки в Mac OS X? Мені декілька людей сказали, що якщо ви хочете створити gzip папки, слід спочатку її "таргувати", а потім "gzip". Це правильно?


1
Це не питання програмування? Ваша публікація позначена тегом, objective-cале ви запитуєте про командний рядок.
rakuo15

Відповіді:


130

Тар - це інструмент архіву, а gzip - інструмент стиснення. Щоб стиснути повний каталог, спочатку потрібно заархівувати його в єдиний файл. Ось у чому робота тар. а потім ви стискаєте архівний файл. Ви можете виконати обидва завдання в одній команді tar з належною опцією.

tar -czf folder_name.tar.gz folder_name /

Якщо ви не хочете робити архів tar (можливо, ви хочете стиснути лише один файл), ви можете використовувати команду gzip безпосередньо.

gzip file.txt

Це створить стислий файл з назвою file.txt.gz


30
Варто відзначити , що варіанти -czfпісля того, як tarпротягом: cвказує на те, що ви хочете створити архів смоли, zзастосовується gzipна проміжному архіві дьогтю, і fдля подальшого остаточного імені файлу folder_name.tar.gz.
fideli

13
Попередження: gzip file.txtзамінює вихідний файл.
Золтан

6
@ Zoltán Використовуйте gzip -k file.txtдля "збереження" (не видалення) вхідного файлу.
Тхоль

13

Якщо хтось досі знаходить це питання під час пошуку "gzip в 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 compression.tar.gz

3

Так, ви в першу чергу зробите tar. Команда tar може виконувати як:

tar -czf archiv.tar.gz mydir/

витягніть свій архів:

tar -xzf archiv.tar.gz

3

Щоб додати відповідь від @taskinoor: якщо ви використовуєте одиночну версію файлу, ака

gzip file.txt

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

Я б ставлю це як коментар, але у вас немає достатньої кількості карми для цього: =)


1
gzip --keep file.txtзбереже оригінал і створить file.txt.gz. Див gzip --help.
Блез

1

Так, це правильно. gzipможе лише стиснути файл. tarкодує вміст каталогу в один файл, який може бути додатково стиснутий з використанням gzip, bzip2, lzmaабо що - небудь ще.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.