Perintah untuk 'gzip' folder?

66

Saya baru mengetahui hal-hal command prompt Mac. Bagaimana Anda membuat gzip folder di Mac OS X? Saya diberitahu oleh beberapa orang bahwa jika Anda ingin membuat folder gzip Anda harus 'tar' terlebih dahulu dan kemudian 'gzip' itu. Apakah ini benar?

terima kasih
sumber
1
Ini bukan pertanyaan pemrograman? Posting Anda ditandai dengan objective-ctetapi Anda bertanya tentang baris perintah.
rakuo15

Jawaban:

130

Tar adalah alat arsip dan gzip adalah alat kompresi. Untuk mengkompres direktori lengkap, pertama Anda perlu mengarsipkannya ke satu file. Itulah pekerjaan itu tar. dan kemudian Anda kompres file yang diarsipkan. Anda dapat melakukan kedua tugas dalam satu perintah tar dengan opsi yang tepat.

tar -czf folder_name.tar.gz folder_name /

Jika Anda tidak ingin membuat arsip tar (mungkin Anda ingin mengompres hanya satu file), maka Anda dapat menggunakan perintah gzip secara langsung.

gzip file.txt

Ini akan membuat file terkompresi bernama file.txt.gz

taskinoor
sumber
30
Layak disebutkan untuk apa opsi -czfsetelahnya tar: cmenunjukkan bahwa Anda ingin membuat arsip tar, zberlaku gzippada arsip tar menengah, dan funtuk nama file akhir selanjutnya folder_name.tar.gz.
fideli
13
Peringatan: gzip file.txtmengganti file asli.
Zoltán
6
@ Zoltán Gunakan gzip -k file.txtuntuk "menyimpan" (jangan hapus) file input.
thohl
13

Jika seseorang masih menemukan pertanyaan ini ketika mencari "gzip di Mac", saya menulis sebuah panduan yang mungkin berguna bagi orang lain. Ini dia:

Mengompresi

Perintah paling dasar akan memampatkan file filename.extdan kemudian menggantinya dengan filename.ext.gzdi direktori yang sama.

gzip filename.ext

Jika Anda tidak ingin kehilangan file asli Anda, maka Anda perlu mem-pipe output gzip -cke file.

gzip -c filename.ext > anotherfile.gz

Kita juga dapat memampatkan dari input standar, sehingga kita dapat memampatkan output dari perintah lain.

cat filename.ext | gzip > anotherfile.gz

OS X juga dilengkapi dengan compressdan uncompressperintah. Mereka membuat gzip "lebih pintar", karena tidak mengkompres file jika akan tumbuh setelah proses kompresi. Perintah berikut menggantikan filename.extdengan filename.ext.Zdalam direktori yang sama.

compress filename.ext

Dekompresi

Untuk mengembalikan file ke keadaan alami terkompresi Anda dapat menggunakan gzip atau pembungkus lainnya. Mode dekompresi gzip disebut dengan -dflag. Mode ini akan mengganti file filename.ext.gzdengan filename.extdi direktori yang sama. Ada juga jalan pintas yang disebut gunzipyang akan melakukan hal yang sama.

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

Kami juga dapat memipatkan file yang telah dikompresi ke output standar untuk menyimpannya ke file lain.

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

Cara cepat lain membaca konten gzip ke output standar adalah zcat, pada dasarnya sama dengan memanggil gzip -cdtetapi Anda dapat memanggil beberapa file dan menyatukannya dengan cara yang sama seperti catperintah membuat file teks. Satu-satunya kelemahan adalah bahwa file Anda perlu sufiks dengan .Zsufiks agar bisa berfungsi ...

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

Tapi jangan takut! zcatini masih berguna, karena dapat didekompresi dari keluaran standar. Jadi pada dasarnya Anda dapat mem-pipe file-file Anda ke zcat agar file-file tersebut didekompresi pada jendela terminal.

cat filename.ext.gz | zcat

Ini sangat berguna jika Anda perlu memeriksa konten file dengan sangat cepat, dan Anda bahkan dapat menyimpan output dari zcat ke file, semudah itu.

cat filename.ext.gz | zcat > anotherfile

The uncompresswrapper bekerja seperti gzip -cdtapi tampaknya untuk file dengan ekstensi .Z untuk menggantikan mereka di direktori saat ini, sehingga Anda hanya perlu menentukan nama file yang ingin mengembalikan, tapi itu baik-baik saja jika Anda menyebutnya dengan ekstensi .Z, sebagai program akan mengabaikannya.

compress filename.ext
uncompress filename.ext

Saya harap Anda menemukan panduan saya berguna :)

Pablo Albornoz
sumber
4

MacOS X adalah Unix jadi ini seharusnya berfungsi (ini berfungsi pada GNU / Linux)

folder tar czvf compressed.tar.gz
jcubic
sumber
3

Ya, Anda harus melakukan tar direktori terlebih dahulu. Perintah tar dapat melakukan keduanya:

tar -czf archiv.tar.gz mydir/

ekstrak arsip Anda:

tar -xzf archiv.tar.gz
Hingga Freier
sumber
3

Untuk menambah jawaban oleh @taskinoor: jika Anda menggunakan versi file tunggal, alias

gzip file.txt

perlu diketahui bahwa file asli (file.txt) akan dihapus dan Anda hanya akan memiliki file.txt.gz

Saya akan menempatkan ini sebagai komentar tetapi tidak memiliki cukup karma untuk melakukan itu: =)

Miro A.
sumber
1
gzip --keep file.txtakan menyimpan yang asli dan membuat file.txt.gz. Lihat gzip --help.
Blaise
1

Ya ini benar. gziphanya dapat mengompres file. tarmengkodekan isi direktori ke dalam satu file, yang dapat lebih dikompresi menggunakan gzip, bzip2, lzmaatau apa pun.

Roman Cheplyaka
sumber