tar.gz dosyalarının bir dizini yoktur. Zip veya diğer arşiv formatlarından farklı olarak, içerilen dosyaların veya diğer meta verilerin bir listesini almak önemsiz veya ucuz değildir. Arşivde hangi dosyaların bulunduğunu göstermek için, katran gerçekten de arşivin sıkıştırmasını açmalı ve dosyaları ayıklamalıdır, ancak -t
seçenek durumunda bunu yalnızca bellekte yapar.
Kullanım durumunuzdaki ortak bir desen, içerilen dosyaları bir arşivde listelemekse, sıkıştırılmış dosyaya, örneğin zip gibi bir dosya dizini ekleyebilecek bir arşiv biçimi kullanmayı düşünebilirsiniz.
Belki de daha karmaşık senaryolar için HDF5 formatına bakmak istersiniz .
Ölçümler
Cevabımı kanıtlamak için bazı ölçümler yapmak zorunda kaldım ve içinde birçok dosya içeren bazı dizinler oluşturdum ve bunları paketledim tar czf files#.tgz files#
ve zip -r files#.zip files#
.
Testler için her seferinde iki kez açma komutunu çalıştırdım ve disk hızını ölçmekten kaçınmak için ikinci çalışmanın sonucunu aldım.
Test 1
100.000 boş dosyafiles1
içeren dizin .
$ time tar tzf files1.tgz >/dev/null
tar tzf files1.tgz > /dev/null 0,56s user 0,09s system 184% cpu 0,351 total
$ time unzip -l files1.zip >/dev/null
unzip -l files1.zip > /dev/null 0,30s user 0,34s system 99% cpu 0,649 total
zip burada daha yavaş.
Test 2
Her biri 512 bayt rasgele veri files2
içeren 5.000 dosya içeren dizin .
$ time tar tzf files2.tgz >/dev/null
tar tzf files2.tgz > /dev/null 0,14s user 0,03s system 129% cpu 0,131 total
$ time unzip -l files2.zip >/dev/null
unzip -l files2.zip > /dev/null 0,03s user 0,06s system 98% cpu 0,092 total
Hala ikna edici değil, ancak zip bu sefer daha hızlı.
Test 3
Dizin files3
içeren 5kB ile 5,000 dosyaları rastgele veriler her.
$ time tar tzf files3.tgz >/dev/null
tar tzf files3.tgz > /dev/null 0,42s user 0,03s system 111% cpu 0,402 total
$ time unzip -l files3.zip >/dev/null
unzip -l files3.zip > /dev/null 0,03s user 0,06s system 99% cpu 0,093 total
Bu testte, dosyalar büyüdükçe, tar'ın bunları listelemesi daha zor olur.
Sonuç
Bana göre zip, sadece çok küçük (neredeyse boş) dosyalar ile fark edeceğiniz küçük bir ek yük getiriyor, oysa çok sayıda daha büyük dosya için arşivde bulunan dosyaları listelerken yarışmayı kazanıyor.
-z
seçeneği:tar -tvfz
. Benzer: tar tvfz yerine tar tvf komutunu kullanırsanız ne olur?