Jag antar vanligtvis att tar
var ett komprimeringsverktyg, men jag är osäker, komprimerar den faktiskt filer, eller är det precis som en ISO-fil, en fil för att hålla filer?
Kommentarer
- Också på SuperUser .
Svar
Tar är ett arkiveringsverktyg (Tape ARchive), det samlar bara in filer och deras metadata tillsammans och producerar en fil. Om du vill komprimera den filen senare kan du använda gzip / bzip2 / xz. För enkelhets skull tillhandahåller tar argument för att komprimera arkivet automatiskt åt dig. Kolla tar mansidan för mer information.
Kommentarer
- En liten förtydligande av svaret. Det är GNU-tjära som ger dessa extra komprimeringsargument. Solaris tar ger till exempel inte argument för komprimering.
- oooh, att ' varför jag fortsätter att se
thing.tar.7z
- BSD-tjära ger också ett argument för komprimering, även om det endast accepterar
z
och bestämmer komprimeringsmetoden baserat på förlängningen, medan GNU-tar har separatzZjJ
argument för de olika komprimeringsmetoderna. - Läs bara BSD-tjärarsidan, och det visar sig att jag hade fel, BSD-tar använder separat
zZjJ
för komprimering precis som GNU-tjära. Men det upptäcker dock komprimering automatiskt vid dekomprimering medan GNU tar förväntar sigzZjJ
då också. - @wingedsubmariner: nej; moderna versioner av GNU
tar
dekomprimerar automatiskt utan att kräva-zZjJ
-alternativen.
Svar
tar
producerar arkiv; komprimering är en separat funktionalitet. Men tar
ensam kan minska utrymmesanvändningen när den används på ett stort antal små filer som är mindre än filsystemets klusterstorlek. Om ett filsystem använder 1 kb kluster, till och med en fil som innehåller en enda byte förbrukar 1 kb (plus en inod). Ett tar
-arkiv har inte denna overhead.
BTW, en ISO filen är egentligen inte ”en fil för att hålla filer” – den är faktiskt en bild av ett helt filsystem (en ursprungligen utformad för att användas på CD-skivor) och därmed är dess struktur betydligt mer komplex.
Kommentarer
- En tom -fil förbrukar faktiskt inte 1 kb. En 1-1023 bytefil kommer.
- @psusi så för en bytefil 1-1023 kommer alltid 1024 att konsumeras vilket resulterar i slöseri med 1023-1 byte.
Svar
Det ursprungliga UNIX-tar-kommandot komprimerade inte arkiv. Som nämnts i en kommentar komprimerar inte Solaris tar. Inte heller HP-UX eller AIX, FWIW. Enligt konvention slutar okomprimerade arkiv med .tar
.
Med GNU / Linux får du GNU-tjära. (Du kan installera GNU-tjära på andra UNIX-system.) Som standard komprimerar den inte, men gör det komprimerar det resulterande arkivet med gzip (även av GNU) om du anger -z
. Det konventionella suffixet för gzippade filer är .gz
, så du kommer ofta att se tarballs (slang för en tjära arkiv, vilket vanligtvis antyder att det är komprimerat) som slutar på .tar.gz
. Detta slut innebär att tjära kördes, följt av gzip, t.ex. tar cf - .|gzip -9v > archive.tar.gz
Du hittar också arkiv som slutar på .tgz
, t.ex. tar czf archive.tgz .
.
Redigera: www.linfo.org/tar.html påminde mig om att GNU tar stödjer mycket mer funktionalitet än att bara komprimera med gzip, och det påminde mig om att suffixen är mer än vanliga konventioner. De har inbyggd semantik. Den stöder också bzip2 (-j
för .bz2
) och gammal komprimering (-Z
för .Z
). Sedan tittade jag på mansidan och blev påmind om att -a
automatiskt kartlägger din önskade komprimeringsmetod baserat på suffix.
En annan nit. Som Linux-tjärman-sidan säger producerar GNU informationssidor, inte man-sidor, så för att lära dig allt om GNU-tjära, kör info tar
.
Kommentarer
- GNU tar inte fortfarande ' t hanterar komprimeringar i sig, den rör bara till / från gzip, bzip2, komprimera och andra.
- Jag tittade på källan . GNU tjära hanterar kompression! Implementeringen utnyttjar återanvändning av kod och sunda UNIX-användarutrymme arkitektoniska principer. " Bara rör " understryker hur komprimering är tätt integrerad i verktyget.Det faktum att det händer med gaffelhjälpsprogram är en teknisk egenskap. Om du vill försvara " bara rör, " ange sedan filnamn och radnummer och låt ' s se vilken sida samhället tar.
- Det tar några dagar innan jag kan kontrollera den källan.
Svar
tar-verktyget komprimeras inte förrän du ger argument för att göra det [tar -z filnamn].