GNU/Linux >> Znalost Linux >  >> Linux

Co je účinnější – dehtová nebo zipová komprese? Jaký je rozdíl mezi tar a zip?

tar vytváří pouze jeden soubor z více souborů, neprovádí kompresi, pokud není kombinován komprimační program, jako je gzip nebo bzip2 (které můžete volat z tar pomocí -z nebo -j možnosti). zip kombinuje archivaci i kompresi v jednom programu.


tar

  • Předpokládá, že budete číst z jednoho konce na druhý – „Tape ARchive“. (Věk příkazu ukazuje...)
  • Neprovádí kompresi, ale můžete komprimovat celý výsledný proud tak, že jej protáhnete např. gzip a bzip2 (provádí se interně pomocí -z nebo -j)
  • Ukládá atributy souborů Unix :uid, gid, oprávnění (zejména spustitelné). Výchozí nastavení může záviset na vaší distribuci a lze jej přepínat pomocí možností.

zip

  • Ukládá atributy MSDOS . (Archivovat, Pouze pro čtení, Skryté, Systém)
  • Komprimuje každý soubor a poté je přidá do archivu
  • Na konci souboru obsahuje tabulku souborů
  • a jako výsledek předchozích dvou umožňuje číst pouze přesné části o souboru, které potřebujete.

Skutečnost, že zip komprimuje soubory samostatně, ovlivní kompresní poměry, zejména u mnoha malých podobných souborů.

(Aspoň to bylo přesně správné před deseti lety.)


Tar zachovává mnohem více metadat než Zip, viz moje srovnání (je mírně zastaralé):

(Kliknutím přiblížíte)

Tar projde 65 % testů, kde Zip pouze 17 %. Zpřístupnil jsem testovací sadu na githubu pod licencí BSD, takže si ji můžete sami vyzkoušet, pokud máte Mac. U linuxu si nejsem jistý, zda existují nějaká metadata, takže tyto testy nemusí být relevantní.


Linux
  1. Rozdíl mezi .exrc a .vimrc?

  2. Jaký je rozdíl mezi fsck a e2fsck?

  3. Jaký je rozdíl mezi adduser a useradd?

  1. Jaký je rozdíl mezi `fallocate --dig-holes` a `fallocate --punch-hole` v Linuxu?

  2. Jaký je rozdíl mezi $(CC) a $CC?

  3. Jaký je rozdíl mezi unlink a rm?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Jaký je rozdíl mezi zápisem do souboru a namapovanou pamětí?

  3. Jaký je rozdíl mezi strtok_r a strtok_s v C?