Saya mencoba sebagian besar format (gzip, dll.) Untuk mengekstrak file zip dengan tar
, dan ketika saya menjadi cukup frustrasi untuk Google untuk itu, saya tidak menemukan cara untuk mengekstrak file zip dengan tar
dan hanya rekomendasi untuk menggunakan zip
atau unzip
. Sebenarnya, sistem Linux saya bahkan tidak memiliki zip
utilitas, tetapi hanya unzip
(membuat saya bertanya-tanya mengapa ini adalah opsi yang disarankan utama). Tentu saja unzip
berhasil, menyelesaikan masalah saya, tetapi mengapa tidak bisa tar
mengekstrak file zip? Mungkin saya seharusnya bertanya, apa perbedaan antara zip dan metode kompresi yang didukung tar
?
28
bsdtar
dapat mengekstrak.zip
arsip: Pzip
secara default karena lisensinya tidak kompatibel dengan GPLJawaban:
Filosofi UNIX adalah memiliki alat kecil. Satu alat memang melakukan satu hal, tetapi ini sangat baik.
The
tar
alat hanya menggabungkan beberapa file menjadi satu file tanpa kompresi.The
gzip
alat hanya mengompresi file tunggal.Jika Anda ingin memiliki keduanya, Anda cukup menggabungkan kedua alat yang menghasilkan
.tar.gz
file.The
zip
alat adalah hal yang sama sekali berbeda. Dibutuhkan banyak file dan menggabungkannya menjadi satu file terkompresi. Dengan algoritma yang sangat berbeda.Jika Anda ingin satu alat untuk mengatur semuanya gunakan
atool
. Ini akan mendukung sejumlah format yang berbeda hanya dengan mendeteksi format dan memanggil alat yang benar.sumber
gzip
algoritma kompresi sama dengan yang digunakan olehzip
. Perbedaannya adalah yanggzip
dimaksudkan untuk mengompresi setiap aliran byte, termasuk.tar
file, sementarazip
, diturunkan dan terinspirasi oleh PKZIP, kompres dan arsip dalam satu langkah (dan dalam urutan itu).Singkat cerita: alat GNU tar tidak menyalurkan melalui zip / unzip karena tidak ada yang peduli.
Cerita panjang, ukuran asli:
tar
awalnya tidak dimaksudkan untuk mengompresi dan mengompresi file, tetapi untuk pengarsipan beberapa file dalam satu file besar. Karena orang tidak hanya ingin mengarsipkan file mereka, tetapi juga, kompres mereka, sehingga mereka hanya menyalurkantar
output melalui kompresor yang menerima input aliran data dan menjatuhkan hasilnya ke file. Keuntungan!Sekarang, untuk membuat tugas seperti itu tidak sesakit mungkin,
tar
memutuskan untuk menyalurkan secara internal file yang dihasilkan ke alat kompresi, seperti gzip, lzma, dll., Yang diaktifkan oleh flag khusus untuk setiap format saat menjalankantar
. Itu sebabnya ketika Anda mencoba untuk mengekstrak file yang rusak melaluitar
Anda ditampilkan kesalahan alat yang mendasarinya, bukan daritar
:Jadi, bukan itu yang
tar
tidak mengompres file zip, hanyatar
saja tidak memiliki kemampuan untuk memipipnya melalui alat yang benar, karena tidak ada yang benar-benar repot untuk mengimplementasikannya, dan zip sudah menyelesaikan fungsi arsip file dari file tar Format ada alasan kurang untuk tar untuk mendukungnya.Sekarang, ada alat all-in-one yang kompres / uncompress semua yang Anda lemparkan ke mereka, sekali lagi, Anda harus memiliki alat yang benar untuk benar-benar mendukungnya. Jika Anda tidak memilikinya, alat itu akan gagal.
sumber
afio
).file-roller
...Sebuah
tar
file adalah format file sendiri dirancang untuk arsip tape. Format ini kemudian dapat dikompres menggunakan (misalnya)gzip
ataubzip2
format kompresi. Saat Anda mengekstrak file tar terkompresi, Anda secara efektif membuka kompresnya, lalu mengekstrak file asli dari file yang tidak dikompresitar
.Ketika Anda mengekstrak
zip
file tidak adatar
file di dalamnya, hanya semua file asli Anda. Karenanya tidak ada alasan untuktar
terlibat dalam proses sama sekali.Anda juga dapat mengompres file menggunakan
gzip
ataubzip2
sendiri seperti halnya Anda dapat membuatzip
file (tanpatar
terlibat). Ketika Anda mengompres file-file ini, Anda menggunakangunzip
ataubunzip2
tidaktar
.sumber
Sebagai jawaban "Beberapa hal adil dan kita harus menerimanya" juga tidak cocok dengan saya, saya hanya melakukan beberapa penggalian (selalu baik untuk mempelajari sesuatu yang baru, bukan?).
Jadi sepertinya masalahnya adalah ke mana alat itu pergi dan apa tujuan mereka.
Alih-alih memparafrasekan apa yang saya temukan dan membuat air menjadi keruh tanpa perlu (kebingungan membuat saya kesal), lihat artikel ini: http://www.differencebetween.net/technology/difference-between-zip-and-gzip/
Saya kira tar bisa dibangun di dukungan zip, tetapi metodologi tampaknya berbeda secara fundamental. Atau mungkin mereka berpikir mengapa seseorang menggunakan alat pengarsipan ini untuk mengelola file dari alat pengarsipan dan kompresi lain (atau mungkin ada beberapa argumen antara dua coders asli dan ada perintah penahanan yang melarang zip untuk melintasi batas aplikasi .. ya saya bercanda).
sumber