.Zip dosyalarını neden tar çıkartamıyorsunuz? [kapalı]


28

Bir zip dosyasını çıkarmak için biçimlerin çoğunu (gzip, vb.) Denedim tarve Google için yeterince hayal kırıklığına uğradığımda, ya da tarsadece kullanmak için öneriler içeren bir zip dosyası çıkarmanın bir yolunu bulamadım . Aslına bakılırsa, Linux sistemimde bir faydası bile yok , ama sadece (neden bunun ana önerilen seçenek olduğunu merak etmemi sağladı). Elbette çalıştı, sorunumu çözdüm, fakat neden zip dosyalarını çıkaramıyorum? Belki de sormalıyım, zip ile desteklenen sıkıştırma yöntemleri arasındaki fark nedir?zipunzipzipunzipunziptartar


1
Sadece bir not, arşivleri bsdtarçıkarabilir .zip: P
HalosGhost

12
"Neden havuç doğramak için konserve açacağı kullanamıyorum?" Mesele şu ki, tar kendi dosya formatına sahip ve daha sonra seçtiğiniz yöntemle bunu sıkıştırıyor. zip tamamen farklı bir canavardır. Bu kadar basit. Bu "unix yolu", tüm ihtiyaçlarınızı karşılayacak bir yumurta döşeme, yün taşıyan süt ekmek yerine, bir işi iyi yapan küçük bir alete sahip.
tink

Bunu daha net hale getirmek için sorumu hafifçe düzenledim, ancak sorumun açıkça zip'in sıkıştırma formatı olduğunu ve tar + sıkıştırma için bir yedek araç olmadığını düşündüğümü ima ettiğini düşünüyorum. Seçtiğim cevap neyi varsaydığımı düzeltti ve cevabın görüşe dayalı olmadığını gösterdi.
Pluto

zipVarsayılan olarak sahip değilsiniz çünkü lisansı GPL ile uyumlu değil
venimus

Yanıtlar:


29

UNIX felsefesi küçük araçlara sahip olmaktır. Bir araç tam olarak bir şey yapıyor, ama bu özellikle iyi.

tarAracı sadece herhangi bir sıkıştırma olmadan tek bir dosya içinde birkaç dosya birleştirme edilir.

gzipAracı sadece tek bir dosya sıkıştırma edilir.

Her ikisine de sahip olmak istiyorsanız, sadece bir .tar.gzdosyayla sonuçlanan her iki aracı da birleştirin .


zipAracı tamamen farklı bir şeydir. Bir sürü dosyayı alır ve bunları tek bir sıkıştırılmış dosyada birleştirir. Tamamen farklı algoritmalar ile.


Bir aracın hepsini yönetmesini istiyorsanız, hepsini kullanın atool. Bu bir destek olacak sürü basitçe biçimini algılamak ve doğru bir araç çağırarak farklı biçimlerde.


Sadece tarın ne yaptığını açıklamak yerine her ikisinin de amacını açıkladığınız için teşekkür ederim. Yakında , "Arşivleme", "Sıkıştırma" formatlarını ve her ikisini de üç farklı tabloda listeleyen bir wikipedia makalesine baktıktan sonra cevabı buldum . Bunu açık bir şekilde açıklayan bir cevap bekleyeceğimi düşündüm.
Pluto

Biraz seçici olmak için, gzipsıkıştırma algoritması tarafından kullanılan aynıdır zip. Aradaki fark, PKZIP'den türetilen ve ilham alan gzipbir .tardosya dahil herhangi bir bayt akışını zipsıkıştırmak, bir adımda (ve bu sırayla) sıkıştırmak ve arşivlemek içindir.
Joe Sewell,

9

Uzun lafın kısası: Katran GNU aracı kimse umursamadığından zip / unzip içinden geçmiyor.

Uzun hikaye, orijinal boyut:

tarbaşlangıçta dosyaları açmak ve sıkıştırmak için değil, birkaç dosyayı tek bir büyük dosyada arşivlemek içindir. İnsanlar yalnızca dosyalarını arşivlemek istemedikleri için değil, aynı zamanda bunları tarsıkıştırmak istediğinden , çıktıyı yalnızca veri akışı girişini kabul eden ve sonuçları bir dosyaya bırakan herhangi bir kompresörden geçirirler. Kar!

Şimdi, böyle bir işi mümkün olduğunca acısız hale getirmek tariçin, çalıştırırken her format için özel bayraklarla etkinleştirilen gzip, lzma vb. Gibi sıkıştırma araçlarına oluşturulan dosyaları dahili olarak aktarmaya karar verdik tar. Bu nedenle, tararacınız yoluyla bozuk bir dosyayı çıkarmaya çalıştığınızda , aşağıdakiler yerine temeldeki araç hatası gösterilir tar:

$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file

Bu yüzden, bu tarzip dosyalarını taraçmaz , sadece onu doğru araca bağlayamaz, çünkü kimse onu uygulamak için uğraşmaz ve zip zaten tar dosyasının dosya arşivleme işlevini gerçekleştirir. format, tar'in bunu desteklemesi için daha az neden var.

Şimdi, attığınız her şeyi sıkıştıran / açan hepsi bir arada araçları var, yine de, gerçekten desteklemek için doğru araçlara ihtiyacınız var. Onlara sahip değilseniz, araç başarısız olacaktır.


1
Pekala, borulama için doğru aracı uygulayan hiç kimsenin ötesinde, tek bir şey yok: tar dosyaları sadece birden fazla dosyayı bir araya getirir. Sıkıştırma ayrı. Böylece, katran borularını filtreler sadece bir katran dosyasını sıkıştırır / açar. Zip farklı çalışır; Sıkıştırmak ve birleştirmek için tek bir entegre araç kullanır (benzer bir Unix programıdır afio).
derobert

Var olan hepsi bir arada sıkıştırma araçlarından birkaçından bahsetmenizi tavsiye ederim. Örneğin, bir GNOME var file-roller...
derobert

@derobert dosya silindiri yalnızca zip / zip / p7zip kurulu unzip olduğunda zip'i destekler. Aksi takdirde katran gibi işe yaramaz.
Braiam

tar aynı zamanda çeşitli sıkıştırılmış versiyonlarını da destekliyorsa, ilgili aracı da kurduysanız ... Çok formatlı arşiv yöneticileri, farklı arşiv formatlarını kullanabilmeniz için size tutarlı bir arayüz sağladıklarından kullanışlıdır.
derobert

@ derobert tam olarak.
Braiam

3

Bir tardosya, teyp arşivleri için tasarlanmış bir dosya biçimidir. Bu format daha sonra (örneğin) gzipveya bzip2sıkıştırma formatları kullanılarak sıkıştırılabilir. Sıkıştırılmış bir tar dosyasını çıkardığınızda, etkin bir şekilde sıkıştırmasını açın, ardından orijinal dosyaları sıkıştırılmamış tardosyadan çıkarın .

Bir zipdosyayı açtığınızda tariçinde hiçbir dosya yoktur , yalnızca tüm orijinal dosyalarınız olur. Bu nedenle tar, sürece dahil olmak için hiçbir neden yoktur .

Ayrıca, dosyaları kullanarak gzipveya bzip2kendi başlarına kendileri oluşturarak zip( tardahil olmadan ) dosyalar oluşturabilirsiniz . Bu dosyaları sıkıştırmasını zaman, kullanmak gunzipveya bunzip2değil tar.


1

"Bazı şeyler sadece var ve onları kabul etmeliyiz" cevabı da benimle iyi uyuşmadığı için, sadece biraz kazı yaptım (her zaman yeni bir şey öğrenmek iyidir, değil mi?).

Görünen o ki mesele, aletlerin nereye gittiğinden ve amaçlarının ne olduğu.

Bulduğum şeyi söylemek ve suları gereksiz yere bulanıklaştırmak (şaşırtmak beni sinirlendirir) yerine, şu makaleye bir göz atın: http://www.differencebetween.net/technology/difference-between-zip-and-gzip/

Sanırım katran zip desteği sağlamış olabilir, ancak metodolojiler temelde farklı. Belki de birisinin neden bu arşivleme aracını başka bir arşivleme ve sıkıştırma aracından dosyaları yönetmek için kullanacağını düşündüler (veya iki orijinal kodlayıcı arasında bazı tartışmalar vardı ve fermuarların uygulama sınırlarını geçmesine izin vermeyen bir sınırlama emri vardı. evet şaka yapıyorum).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.