file tar.gz tidak memiliki indeks. Tidak seperti zip atau format arsip lainnya, tidaklah sepele atau murah untuk mendapatkan daftar file yang terkandung atau metadata lainnya. Untuk menunjukkan kepada Anda file mana yang terkandung dalam arsip, tar memang perlu mengompres arsip dan mengekstrak file, meskipun dalam kasus -t
opsi itu hanya dalam memori.
Jika pola umum dalam kasus penggunaan Anda adalah untuk mencantumkan file yang ada dalam arsip, Anda mungkin ingin mempertimbangkan untuk menggunakan format arsip yang dapat menambahkan indeks file ke file terkompresi, misalnya zip.
Mungkin Anda juga ingin melihat format HDF5 untuk skenario yang lebih kompleks.
Pengukuran
Saya hanya perlu melakukan beberapa pengukuran untuk membuktikan jawaban saya dan membuat beberapa direktori dengan banyak file di dalamnya dan mengemasnya di mana keduanya, tar czf files#.tgz files#
dan zip -r files#.zip files#
.
Untuk pengujian saya menjalankan perintah unpacking dua kali setiap kali dan mengambil hasil dari menjalankan kedua, untuk menghindari pengukuran kecepatan disk.
Tes 1
Direktori yang files1
berisi 100.000 file kosong .
$ 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 lebih lambat di sini.
Tes 2
Direktori yang files2
berisi 5.000 file dengan masing-masing 512 byte data acak.
$ 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
Masih tidak meyakinkan, tetapi zip kali ini lebih cepat.
Tes 3
Direktori yang files3
berisi 5.000 file dengan masing-masing data acak 5kB .
$ 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
Dalam tes ini dapat dilihat bahwa semakin besar file yang didapat, semakin sulit bagi tar untuk mendaftarkannya.
Kesimpulan
Bagi saya kelihatannya zip memperkenalkan sedikit overhead yang akan Anda perhatikan hanya dengan banyak file yang sangat kecil (hampir kosong), sedangkan untuk sejumlah besar file yang lebih besar ia memenangkan kontes ketika mendaftarkan file yang terdapat dalam arsip.
-z
pilihan:tar -tvfz
. Mirip: Apa yang terjadi jika Anda menggunakan perintah tar tvf sebagai lawan dari tar tvfz?