Zcat - Perintah Linux - Perintah Unix

Nama

gzip, gunzip, zcat - kompres atau perluas file

Ringkasan

gzip [ -acdfhlLnNrtvV19 ] [ -S suffix ] [ nama ... ]
gunzip [ -acfhlLnNrtvV ] [ -S akhiran ] [ nama ... ]
zcat [ -fhLV ] [ nama ... ]

Deskripsi

Gzip mengurangi ukuran file bernama menggunakan Lempel-Ziv coding (LZ77). Kapan pun memungkinkan, setiap file diganti dengan satu dengan ekstensi .gz , sambil mempertahankan mode kepemilikan, akses, dan waktu modifikasi yang sama. (Ekstensi default adalah -gz untuk VMS, z untuk MSDOS, OS / 2 FAT, Windows NT FAT dan Atari.) Jika tidak ada file yang ditentukan, atau jika nama file "-", input standar dikompresi ke standar keluaran. Gzip hanya akan mencoba untuk mengkompres file biasa. Secara khusus, ini akan mengabaikan tautan simbolik.

Jika nama file yang dikompresi terlalu panjang untuk sistem file, gzip memotongnya. Gzip berusaha memotong hanya bagian-bagian dari nama file lebih dari 3 karakter. (Suatu bagian dibatasi oleh titik-titik.) Jika nama hanya terdiri dari bagian-bagian kecil, bagian terpanjang dipotong. Misalnya, jika nama file dibatasi hingga 14 karakter, gzip.msdos.exe dikompresi ke gzi.msd.exe.gz. Nama tidak terpotong pada sistem yang tidak memiliki batas pada panjang nama file.

Secara default, gzip menyimpan nama file dan stempel waktu asli di file yang dikompresi. Ini digunakan saat mendekompres file dengan opsi -N . Ini berguna ketika nama file yang dipadatkan terpotong atau ketika stempel waktu tidak diawetkan setelah transfer file.

File yang dikompresi dapat dikembalikan ke bentuk aslinya menggunakan gzip -d atau gunzip atau zcat. Jika nama asli yang disimpan dalam file yang dikompresi tidak cocok untuk sistem file, nama baru dibuat dari yang asli untuk membuatnya legal.

gunzip mengambil daftar file pada baris perintahnya dan mengganti setiap file yang namanya diakhiri dengan .gz, -gz, .z, -z, _z atau .Z dan yang dimulai dengan angka ajaib yang benar dengan file yang tidak terkompresi tanpa ekstensi asli . gunzip juga mengenali ekstensi khusus .tgz dan .taz sebagai singkatan untuk .tar.gz dan .tar.Z masing-masing. Ketika mengompresi, gzip menggunakan ekstensi .tgz jika diperlukan daripada memotong file dengan ekstensi .tar .

gunzip saat ini dapat mendekompresi file yang dibuat oleh gzip, zip, kompres, kompres -H atau pak. Deteksi format input otomatis. Saat menggunakan dua format pertama, gunzip memeriksa CRC 32 bit. Untuk paket, gunzip memeriksa panjang yang tidak terkompresi. Format kompres standar tidak dirancang untuk memungkinkan pemeriksaan konsistensi. Namun gunzip kadang-kadang dapat mendeteksi file .Z yang buruk. Jika Anda mendapatkan kesalahan saat membuka kompresi file .Z , jangan anggap bahwa file .Z benar karena kompresi standar tidak mengeluh. Ini biasanya berarti bahwa standar uncompress tidak memeriksa inputnya, dan dengan senang hati menghasilkan output sampah. Kompres SCO-H format (metode kompresi lzh) tidak termasuk CRC tetapi juga memungkinkan beberapa pemeriksaan konsistensi.

File yang dibuat oleh zip dapat dikompres oleh gzip hanya jika mereka memiliki anggota tunggal yang dikompresi dengan metode 'deflasi'. Fitur ini hanya dimaksudkan untuk membantu konversi file tar.zip ke format tar.gz. Untuk mengekstrak file zip dengan beberapa anggota, gunakan unzip daripada gunzip.

zcat identik dengan gunzip -c. (Pada beberapa sistem, zcat dapat diinstal sebagai gzcat untuk mempertahankan tautan asli untuk dikompresi.) Zcat tidak memampatkan daftar file pada baris perintah atau input standarnya dan menulis data yang tidak dikompresi pada output standar. zcat akan membuka kompresi file yang memiliki nomor ajaib yang benar apakah mereka memiliki akhiran .gz atau tidak.

Gzip menggunakan algoritma Lempel-Ziv yang digunakan dalam zip dan PKZIP. Jumlah kompresi yang diperoleh tergantung pada ukuran input dan distribusi substring umum. Biasanya, teks seperti kode sumber atau bahasa Inggris berkurang 60-70%. Kompresi umumnya jauh lebih baik daripada yang dicapai oleh LZW (seperti yang digunakan dalam kompres ), Huffman coding (seperti yang digunakan dalam paket ), atau coding Huffman adaptif ( compact ).

Kompresi selalu dilakukan, bahkan jika file yang dikompresi sedikit lebih besar dari aslinya. Ekspansi kasus terburuk adalah beberapa byte untuk file header gzip, ditambah 5 byte setiap blok 32K, atau rasio ekspansi 0,015% untuk file besar. Perhatikan bahwa jumlah aktual blok disk yang digunakan hampir tidak pernah bertambah. gzip mempertahankan mode, kepemilikan, dan stempel waktu file saat mengompresi atau dekompresi.

PILIHAN

-a --ascii

Mode teks Ascii: mengonversi ujung-garis menggunakan konvensi lokal. Opsi ini hanya didukung pada beberapa sistem non-Unix. Untuk MSDOS, CR LF diubah menjadi LF saat mengompresi, dan LF diubah menjadi CR LF saat mendekompresi.

-c --stdout --to-stdout

Tulis output pada output standar; menjaga file asli tidak berubah. Jika ada beberapa file input, output terdiri dari urutan anggota yang dikompresi secara independen. Untuk mendapatkan kompresi yang lebih baik, gabungkan semua file input sebelum mengompresi mereka.

-d --komputer --kompresi

Dekompresi.

-f - kekuatan

Paksa kompresi atau dekompresi meskipun file memiliki banyak tautan atau file yang terkait sudah ada, atau jika data yang dikompresi dibaca dari atau ditulis ke terminal. Jika data input tidak dalam format yang diakui oleh gzip, dan jika opsi --stdout juga diberikan, salin data masukan tanpa mengubah ke ouput standar: biarkan zcat berperilaku sebagai kucing. Jika -f tidak diberikan, dan ketika tidak berjalan di latar belakang, gzip meminta untuk memverifikasi apakah file yang ada harus ditimpa.

-h --help

Tampilkan layar bantuan dan keluar.

-l --list

Untuk setiap file yang dikompresi, daftar bidang-bidang berikut:


ukuran terkompresi: ukuran file yang dikompresi
ukuran tidak terkompresi: ukuran file yang tidak terkompresi
rasio: rasio kompresi (0,0% jika tidak diketahui)
uncompressed_name: nama file yang tidak terkompresi

Ukuran yang tidak dikompresi diberikan sebagai -1 untuk file yang tidak dalam format gzip, seperti file .Z yang dikompresi. Untuk mendapatkan ukuran yang tidak terkompresi untuk file semacam itu, Anda dapat menggunakan:


file zcat.Z | wc -c

Dalam kombinasi dengan opsi --verbose, bidang berikut juga ditampilkan:


metode: metode kompresi
CRC: 32-bit CRC dari data tidak terkompresi
tanggal & waktu: stempel waktu untuk file yang tidak terkompresi

Metode kompresi yang saat ini didukung adalah deflate, compress, lzh (SCO compress -H) dan pack. Crc diberikan sebagai ffffffff untuk file yang tidak dalam format gzip.

Dengan --name, nama, tanggal dan waktu yang tidak dikompres adalah yang disimpan dalam file kompres jika ada.

Dengan --verbose, total ukuran dan rasio kompresi untuk semua file juga ditampilkan, kecuali beberapa ukuran tidak diketahui. Dengan --quiet, judul dan garis total tidak ditampilkan.

-L --likense

Tampilkan lisensi gzip dan keluar.

-n --no-name

Saat mengompresi, jangan simpan nama file asli dan cap waktu secara default. (Nama asli selalu disimpan jika nama harus dipotong.) Ketika mendekompresi, jangan pulihkan nama file asli jika ada (hapus hanya sufiks gzip dari nama file yang dikompresi) dan jangan pulihkan stempel waktu asli jika ada (salin dari file yang dikompresi). Opsi ini adalah default saat mendekompresi.

-N --name

Saat mengompresi, simpanlah selalu nama file asli dan stempel waktu; ini adalah default. Saat melakukan dekompresi, pulihkan nama file asli dan stempel waktu jika ada. Opsi ini berguna pada sistem yang memiliki batas pada panjang nama file atau ketika stempel waktu telah hilang setelah transfer file.

-q --quiet

Tunda semua peringatan.

-r - rekursif

Jelajahi struktur direktori secara rekursif. Jika salah satu nama file yang ditentukan pada baris perintah adalah direktori, gzip akan turun ke direktori dan memampatkan semua file yang ditemukan di sana (atau menguraikannya dalam kasus gunzip ).

-S .suf --suffix .suf

Gunakan akhiran .suf sebagai gantinya .gz. Setiap sufiks dapat diberikan, tetapi sufiks selain .z dan .gz harus dihindari untuk menghindari kebingungan ketika file ditransfer ke sistem lain. Akhiran null memaksa gunzip untuk mencoba dekompresi pada semua file yang diberikan terlepas dari sufiks, seperti pada:


gunzip -S "" * (*. * untuk MSDOS)

Versi gzip sebelumnya menggunakan akhiran .z. Ini diubah untuk menghindari konflik dengan pak (1).

-t --test

Uji. Periksa integritas file yang dikompresi.

-v - verbose

Verbose. Tampilkan nama dan pengurangan persentase untuk setiap file yang dikompresi atau didekompresi.

-V --versi

Versi. Tampilkan nomor versi dan opsi kompilasi, lalu keluar.

- # --cepat - terbaik

Mengatur kecepatan kompresi menggunakan digit # yang ditentukan, di mana -1 atau - cepat menunjukkan metode kompresi tercepat (kompresi kurang) dan -9 atau --best menunjukkan metode kompresi paling lambat (kompresi terbaik). Tingkat kompresi standar adalah -6 (yaitu bias terhadap kompresi tinggi dengan mengorbankan kecepatan).

Penggunaan Tingkat Lanjut

Beberapa file terkompresi dapat digabung. Dalam hal ini, gunzip akan mengekstrak semua anggota sekaligus. Sebagai contoh:


gzip -c file1> foo.gz
gzip -c file2 >> foo.gz

Kemudian


gunzip -c foo

setara dengan


kucing file1 file2

Dalam kasus kerusakan pada satu anggota file .gz, anggota lain masih dapat dipulihkan (jika anggota yang rusak dihapus). Namun, Anda bisa mendapatkan kompresi yang lebih baik dengan mengompresi semua anggota sekaligus:


kucing file1 file2 | gzip> foo.gz

kompres lebih baik dari


gzip -c file1 file2> foo.gz

Jika Anda ingin mengkompilasi ulang file yang digabung untuk mendapatkan kompresi yang lebih baik, lakukan:


gzip -cd old.gz | gzip> new.gz

Jika file yang dikompresi terdiri dari beberapa anggota, ukuran yang tidak dikompresi dan CRC yang dilaporkan oleh opsi --list berlaku hanya untuk anggota terakhir. Jika Anda membutuhkan ukuran yang tidak terkompresi untuk semua anggota, Anda dapat menggunakan:


gzip -cd file.gz | wc -c

Jika Anda ingin membuat file arsip tunggal dengan beberapa anggota sehingga nantinya anggota dapat diekstrak secara terpisah, gunakan pengarsip seperti tar atau zip. GNU tar mendukung opsi-z untuk memanggil gzip secara transparan. gzip dirancang sebagai pelengkap tar , bukan sebagai pengganti.

LIHAT JUGA

kompres (1)

Format file gzip ditentukan dalam P. Deutsch, spesifikasi file format GZIP versi 4.3, , Internet RFC 1952 (Mei 1996). Format deflasi zip ditentukan dalam P. Deutsch, DEFLATE Compressed Data Format Spesifikasi versi 1.3, , Internet RFC 1951 (Mei 1996).

Penting: Gunakan perintah man ( % man ) untuk melihat bagaimana perintah digunakan pada komputer khusus Anda.