Comprimeert tar daadwerkelijk bestanden, of groepeert ze ze gewoon samen?

Ik nam meestal aan dat tar een compressieprogramma was, maar ik weet niet zeker of het daadwerkelijk bestanden comprimeert, of is het net als een ISO-bestand, een bestand om bestanden in te bewaren?

Reacties

Answer

Tar is een archiveringstool (Tape ARchive), het verzamelt alleen bestanden en hun metadata samen en produceert één bestand. Als je dat bestand later wilt comprimeren, kun je gzip / bzip2 / xz gebruiken. Gemakshalve biedt tar argumenten om het archief automatisch voor u te comprimeren. Bekijk de tar man-pagina voor meer details.

Reacties

  • Een kleine verduidelijking van het antwoord. Het is GNU-tar die die extra compressie-argumenten levert. Solaris-tar geeft bijvoorbeeld geen argumenten voor compressie.
  • oooh, dat ' is waarom ik steeds thing.tar.7z
  • BSD tar biedt ook een argument voor compressie, hoewel het alleen z accepteert en de compressiemethode bepaalt op basis van de extensie, terwijl GNU tar een aparte zZjJ argumenten voor de verschillende compressiemethoden.
  • Lees gewoon de BSD tar manpage, en het blijkt dat ik me vergiste, BSD tar gebruikt aparte zZjJ voor compressie, net als GNU tar. Het detecteert echter automatisch compressie bij het decomprimeren, terwijl GNU tar zZjJ en dan ook verwacht.
  • @wingedsubmariner: nee; moderne versies van GNU tar decomprimeren automatisch zonder dat de -zZjJ opties nodig zijn.

Answer

tar produceert archieven; compressie is een aparte functionaliteit. Echter tar alleen kan het ruimtegebruik verminderen bij gebruik op een groot aantal kleine bestanden die kleiner zijn dan de clustergrootte van het bestandssysteem. Als een bestandssysteem 1kb gebruikt clusters, zelfs een bestand dat een enkele byte bevat, verbruikt 1kb (plus een inode). Een tar archief heeft deze overhead niet.

Trouwens, een ISO bestand is niet echt “een bestand om bestanden in te bewaren” – het is eigenlijk een afbeelding van een volledig bestandssysteem (oorspronkelijk ontworpen om op cds te worden gebruikt) en daardoor is de structuur aanzienlijk complexer.

Opmerkingen

  • Eigenlijk zal een leeg bestand geen 1kb verbruiken. Een bestand van 1-1023 bytes zal.
  • @psusi dus voor een bestand van bytes 1-1023 zal altijd 1024 verbruiken, wat resulteert in een verspilling van 1023-1 bytes.

Answer

Het originele UNIX tar-commando comprimeerde geen archieven. Zoals vermeld in een opmerking, comprimeert Solaris tar niet. HP-UX, noch AIX, FWIW ook. Volgens afspraak eindigen niet-gecomprimeerde archieven op .tar.

Met GNU / Linux krijg je GNU tar. (je kunt GNU tar op andere UNIX-systemen installeren.) Standaard comprimeert het niet; het comprimeert echter wel het resulterende archief met gzip (ook door GNU) als je -z opgeeft. Het conventionele achtervoegsel voor gzip-bestanden is .gz, dus je zult vaak tarballs zien (jargon voor een tar archief, meestal implicerend dat het “is gecomprimeerd) die eindigen op .tar.gz. Dat einde impliceert dat tar werd uitgevoerd, gevolgd door gzip, bijv. tar cf - .|gzip -9v > archive.tar.gz . U vindt ook archieven die eindigen op .tgz, bijv. tar czf archive.tgz ..

Bewerken: www.linfo.org/tar.html herinnerde me eraan dat GNU tar veel meer functionaliteit ondersteunt dan alleen comprimeren met gzip, en het herinnerde me eraan dat de achtervoegsels meer zijn dan gewone conventies. Ze hebben een ingebouwde semantiek. Het ondersteunt ook bzip2 (-j voor .bz2) en oude compressie (-Z voor .Z). Toen keek ik naar de man-pagina en werd eraan herinnerd dat -a automatisch de gewenste compressiemethode toewijst op basis van het achtervoegsel.

Nog een nit. Zoals de Linux tar-manpagina zegt, produceert GNU info-paginas, geen man-paginas, dus om alles over GNU-tar te leren, voer je info tar uit.

Reacties

  • De GNU-tar verwerkt nog steeds geen ' t alleen compressies, het pijpt alleen van / naar gzip, bzip2, compress en andere.
  • Ik heb de broncode bekeken. GNU tar zorgt voor compressie! De implementatie maakt gebruik van hergebruik van code en degelijke architecturale principes van de UNIX-gebruikersruimte. " Just pipes " is een onderschatting van de manier waarop compressie nauw in de tool is geïntegreerd.Het feit dat het gebeurt met vorkhulpprogrammas is een technisch aspect. Als je " just pipes, " wilt verdedigen, noem dan bestandsnamen en regelnummers en laat ' s zien welke kant de community kiest.
  • Het duurt enkele dagen voordat ik die bron kan controleren.

Antwoord

tar-hulpprogramma comprimeert niet totdat u daarvoor een argument opgeeft [tar -z bestandsnaam].

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *