Mengekstraksi satu file dari file zip adalah operasi yang cepat, jadi saya berasumsi ini juga berlaku untuk TAR, tetapi saya belajar bahwa meskipun file TAR tanpa kompresi, dapat membutuhkan waktu lama untuk mengekstraksi file. . Saya telah menggunakan tar untuk membuat cadangan folder rumah saya di OS X, dan saya kemudian membutuhkan satu file. Karena tar tidak tahu di mana file itu, ia perlu memindai seluruh file 300GB sebelum dapat mengekstrak. Ini berarti TAR adalah format yang mengerikan untuk sebagian besar skenario cadangan, jadi saya ingin tahu opsi saya.
Jadi, format file arsip apa yang cocok untuk mengekstraksi satu file dengan cepat?
Meskipun pertanyaan ini sebenarnya bukan tentang kompresi, saya tidak keberatan menjawab daftar format yang menggabungkan pengarsipan dan kompresi (seperti zip), dalam hal ini " kompresi padat " akan penting.
sumber
tar
merupakan singkatan dari arsip tape jadi perlu diingat itu awalnya dirancang (di 70-an) untuk bekerja dengan kaset (dan masih bekerja dengan tape drive hari ini). Jelas tidak dimaksudkan untuk akses acak atau cepat.Jawaban:
Kedengarannya seperti kecepatan & efisiensi ekstraksi adalah masalah utama Anda, dan saya berasumsi Anda menggunakan linux atau macOS jadi ingin mempertahankan atribut file khusus (yang zip & 7z abaikan). Dalam hal ini, format arsip yang sangat baik adalah:
Sistem file ext [2/3/4] - Cukup salin file-file tersebut di suatu tempat, kemudian mengekstraksi satu file sama cepat & mudahnya dengan memasang & membaca file asli. Anda dapat meletakkan seluruh sistem file arsip di dalam satu file arsip jika Anda mau, cukup buat file cukup besar & format & mount itu (bahkan tidak perlu
-o loop
opsi lagi).Pro:
Bonus yang bagus adalah Anda dapat dengan mudah menambahkan enkripsi (LUKS) ke seluruh file arsip juga, atau enkripsi lain yang didukung sistem file (eCryptFS, EncFS, dll).
Anda juga dapat menggunakan solusi pencadangan berbasis rsync dengan mudah.
Sangat mudah untuk menambah / menghapus file (hingga ukuran file arsip keseluruhan).
Cons:
resize2fs
untuk mengecilkan sistem file, kemudiantruncate
untuk mengecilkan file (atau sebaliknya untuk memperluas).Sistem file yang sama yang sudah Anda gunakan, jika Anda menggunakan macOS dan menyukai sesuatu selain ext. Saya cukup yakin perintah mount macOS bekerja dengan satu file arsip besar juga.
Jika Anda ingin kompresi juga, di situlah arsip padat & pembacaan lambat masuk. Beberapa filesystem mendukung kompresi secara langsung (btrfs, reiserfs / reiser4, direncanakan untuk ext?) Tetapi saya hanya akan pergi dengan:
SquashFS - Ini mungkin kompresi Raja, menyimpan atribut file, dan memungkinkan ekstraksi cepat dari satu file (pemasangan & penelusuran setiap file sebenarnya). Ini bagus untuk arsip juga, dan memiliki tingkat kompresi yang dapat disesuaikan, gunakan.
Atau mungkin menggabungkannya dengan backup tambahan & mount overlay untuk solusi "backup parsial tapi file lengkap" yang bagus.
Sebuah con adalah tidak mungkin untuk menambah atau mengecilkan ukuran arsip, atau menambah / menghapus file.
Atau cukup gunakan produk cadangan yang ada (Time Machine?).
Jika Anda benar-benar ingin menggunakan arsip seperti 7z / zip, tetapi tetap menyimpan atribut file, Anda dapat membuat tar setiap file secara individual (menyimpan atribut) kemudian menyimpan file tar yang terpisah dalam arsip 7z / zip. Ini membutuhkan langkah ekstra dengan lebih banyak kerepotan, tetapi akan membiarkan Anda dengan mudah mengekstrak satu file (tar), dan memperluas atau mengecilkan arsip tanpa mengompresi ulang semuanya (jika itu bukan arsip padat).
sumber
Format Zip telah dibuat untuk mengekstraksi file tunggal secara acak dan efisien. Arsip Zip berisi katalog di ujungnya yang memungkinkan untuk mencapai satu file dengan cepat - dikompresi atau tidak.
sumber
Sebagian besar format arsip kompresi modern menyertakan basis data atau katalog file dan folder yang tersimpan di dalamnya. Ini termasuk: 7-Zip, ACE, ARC, ARJ, BZIP2, CAB, CPIO, GZIP, IMG, ISO (ISO9660), LHA, RAR, RPM, SFX, SQX, TAR, TBZ (TAR.BZ), TGZ (TAR .GZ), TXZ (TAR.XZ), XZ, ZIP, Zip64, dan ZOO. Format ini akan memungkinkan Anda untuk mengekstrak file atau folder individual, sesuai kebutuhan.
ZIP sejauh ini adalah yang paling umum dan banyak digunakan. Beberapa sistem operasi, seperti Windows memiliki dukungan asli untuk file ZIP, memungkinkan Anda untuk menggunakan file ZIP seolah-olah itu folder standar.
Adapun efisiensi mengekstraksi file individual, saya belum pernah melihat tes ini. Namun, saya telah menggunakan arsip ZIP dengan cara ini, jadi saya dapat mengatakan itu cukup cepat, tergantung pada ukuran file.
sumber