Komprimerer tar faktisk filer, eller bare grupperer de dem sammen?

Jeg antok vanligvis at tar var et komprimeringsverktøy, men jeg er usikker på, komprimerer det faktisk filer, eller er det akkurat som en ISO-fil, en fil for å holde filer?

Kommentarer

Svar

Tar er et arkiveringsverktøy (Tape ARchive), det samler bare filer og deres metadata sammen og produserer en fil. Hvis du vil komprimere den filen senere, kan du bruke gzip / bzip2 / xz. For enkelhets skyld gir tar argumenter for å komprimere arkivet automatisk for deg. Sjekk tar man page for mer informasjon.

Kommentarer

  • En liten avklaring på svaret. Det er GNU-tjære som gir disse ekstra komprimeringsargumentene. Solaris tar gir for eksempel ikke argumenter for komprimering.
  • oooh, at ' hvorfor jeg stadig ser thing.tar.7z
  • BSD-tjære gir også et argument for komprimering, selv om det bare godtar z og bestemmer komprimeringsmetoden basert på utvidelsen, mens GNU-tjære har separat zZjJ argumenter for de forskjellige komprimeringsmetodene.
  • Bare les BSD-tar-manpage, og det viser seg at jeg tok feil, BSD-tar bruker separat zZjJ for komprimering akkurat som GNU-tjære. Imidlertid oppdager den automatisk komprimering når dekomprimering skjer, mens GNU tar forventer zZjJ da også.
  • @wingedsubmariner: nei; moderne versjoner av GNU tar dekomprimerer automatisk uten å kreve -zZjJ -alternativene.

Svar

tar produserer arkiver; komprimering er en egen funksjonalitet. Imidlertid tar alene kan redusere plassforbruket når det brukes på et stort antall små filer som er mindre enn filsystemets klyngestørrelse. Hvis et filsystem bruker 1 kb klynger, til og med en fil som inneholder en enkelt byte, bruker 1 kb (pluss en inode). Et tar -arkiv har ikke dette overhead.

BTW, en ISO filen er egentlig ikke «en fil for å holde filer» – den er faktisk et bilde av et helt filsystem (et opprinnelig designet for å brukes på CD-er) og dermed er strukturen betydelig mer kompleks.

Kommentarer

  • En tom fil bruker faktisk ikke 1kb. En 1-1023 bytefil vil.
  • @psusi, så for en fil med byte 1-1023 vil alltid forbruke 1024, noe som resulterer i svinn på 1023-1 byte.

Svar

Den opprinnelige UNIX-tar-kommandoen komprimerte ikke arkiv. Som nevnt i en kommentar komprimerer Solaris tar ikke. HP-UX, heller ikke AIX, FWIW. Etter konvensjon ender ikke komprimerte arkiver med .tar.

Med GNU / Linux får du GNU-tjære. (Du kan installere GNU-tjære på andre UNIX-systemer.) Som standard komprimerer den ikke, men den komprimerer imidlertid det resulterende arkivet med gzip (også ved GNU) hvis du leverer -z. Det konvensjonelle suffikset for gzipped filer er .gz, så du vil ofte se tarballs (slang for en tjære arkiv, som vanligvis antyder at det er komprimert) som ender på .tar.gz. Denne avslutningen innebærer at tjære ble kjørt, etterfulgt av gzip, f.eks. tar cf - .|gzip -9v > archive.tar.gz . Du vil også finne arkiver som slutter på .tgz, f.eks. tar czf archive.tgz ..

Rediger: www.linfo.org/tar.html minnet meg om at GNU tar støtter mye mer funksjonalitet enn bare å komprimere med gzip, og det minnet meg om at suffiksen er mer enn vanlige konvensjoner. De har innebygd semantikk. Den støtter også bzip2 (-j for .bz2) og gammel komprimering (-Z for .Z). Så så jeg på mannssiden og ble påminnet om at -a automatisk kartlegger ønsket kompresjonsmetode basert på suffiks.

Én annen nit. Som Linux tar man-siden sier, GNU produserer informasjonssider, ikke man-sider, så for å lære alt om GNU tar, kjør info tar.

Kommentarer

  • GNU-tjæren håndterer fortsatt ikke ' t komprimeringer av seg selv, den bare rør til / fra gzip, bzip2, komprimering og andre.
  • Jeg så på kilden . GNU tjære håndterer kompresjon! Implementeringen drar nytte av gjenbruk av koder og sunne UNIX-brukerrom arkitektoniske prinsipper. " Bare rør " understreker måten komprimering er tett integrert i verktøyet.Det faktum at det skjer med gaffelhjelperprogrammer er en teknisk. Hvis du vil forsvare " bare rør, ", siter du filnavn og linjenumre og lar ' ser hvilken side samfunnet tar.
  • Det tar noen dager før jeg kan sjekke den kilden.

Svar

tar-verktøyet komprimerer ikke før du gir argument for å gjøre det [tar -z filnavn].

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *