De noodzaak om bestanden samen te voegen en te comprimeren tot één enkel archief bestaat al sinds computers voor het eerst harde schijven kregen, en die behoefte is tot vandaag gebleven. Alles, van documenten en foto's tot software en stuurprogramma's worden elke dag geüpload en gedownload als archieven. De meeste computergebruikers zijn bekend met .zip-bestanden, maar archieven bevatten meer dan alleen de eenvoudige .zip. In deze tutorial zullen we de verschillende Linux-archiverings- en compressieopdrachten laten zien en de juiste manier om er gebruik van te maken.

Teer en gzip

Historisch gezien is de standaard archiveertool op Linux de opdracht tar . Oorspronkelijk stond het voor "Tape Archive", maar dat was toen tapes de primaire media waren voor het verplaatsen van gegevens. De tar opdracht is zeer flexibel en het kan archiefbestanden maken, comprimeren, bijwerken, uitpakken en testen. De standaard extensie voor een ongecomprimeerd tar-archief (soms tar-bestand of tarball genoemd) is .tar, terwijl gecomprimeerde tar-archieven meestal de .tgz-extensie gebruiken (dit betekent een tar-bestand gecomprimeerd met GNU zip). Tar biedt eigenlijk verschillende compressiemethoden, waaronder bzip2, zip, LZW en LZMA.

Gebruik de volgende opdracht om een ​​niet-gecomprimeerde tarball van alle bestanden in een map te maken:

 tar cvf somefiles.tar * 

c betekent create, v staat voor verbose (dit betekent dat het tar-commando de bestanden vermeldt die het archiveert) en f vertelt tar dat de volgende parameter de naam is van het archiefbestand, in dit geval "somefiles.tar". Het jokerteken * betekent alle bestanden in de map, zoals het geval zou zijn voor de meeste Linux-shellopdrachten.

De tarball "somefiles.tar" wordt gemaakt in de lokale map. Dit kan nu worden gecomprimeerd met een tool zoals gzip, zip, comprimeren of bzip2. Bijvoorbeeld:

 gzip somefiles.tar 

gzip comprimeert de tarball en voegt de extensie .gz toe. Nu in de lokale map is er een bestand somefiles.tar.gz plaats van het bestand somefiles.tar .

Dit tweestapsproces, de tarball maken en comprimeren, kan worden teruggebracht tot één stap met de ingebouwde compressie van tar:

 tar cvzf somefiles.tgz * 

Hiermee wordt een met gzip gecomprimeerde tarball gemaakt met de naam somefiles.tgz . De extra z optie zorgt ervoor dat tar de tarball comprimeert. In plaats van z je j, J of Z kunnen gebruiken, wat tar aangeeft om respectievelijk bzip2, xz en LZW-compressie te gebruiken. xz implementeert LZMA2-compressie, hetzelfde algoritme als het populaire Windows 7-Zip-programma.

7-Zip

Het is mogelijk om een ​​7-Zip-compatibel bestand te maken met behulp van de opdracht 7zr . Om een ​​.7z-archief te maken, gebruik:

 7zr a somefiles.7z * 

De a opties betekent toevoegen, dwz voeg alle lokale bestanden toe aan het archief somefiles.7z. Dit bestand kan vervolgens naar een Windows-gebruiker worden gestuurd en zij kunnen de inhoud probleemloos uitpakken.

Het gebruik van 7zr om backups op Linux uit te voeren wordt niet aanbevolen, aangezien 7-zip de eigenaar / groepinformatie niet opslaat over de bestanden die het archiveert. Het is mogelijk om 7zr te gebruiken om een ​​tarball te comprimeren (die de eigenaarinformatie wel opslaat). U kunt dit als volgt met een Unix-pijp doen:

 tar cvf - * | 7zr a -si somefiles.tar.7z 

Het koppelteken na de optie f vertelt tar om zijn uitvoer naar de Unix stdout te verzenden en niet naar een bestand. Omdat we een pipe gebruiken, wordt de output van tar in 7zr ingevoerd, die wacht op input van stdin als gevolg van de optie -si . 7zr zal dan een archief maken met de naam somefiles.tar.7z dat de tarball zal bevatten die op zijn beurt de bestanden bevat. Als u niet vertrouwd bent met het gebruik van buizen, kunt u een standaard tarball maken en deze vervolgens comprimeren met 7zr in twee stappen:

 tar -cvf somefiles.tar * 7zr a somefiles.tar.7z somefiles.tar 

Extraction

Het extraheren van de bestanden uit deze verschillende archieven is ook erg eenvoudig, hier is een snel spiekbriefje voor het extraheren van de verschillende hierboven gemaakte bestanden.

Om een ​​eenvoudige tarball uit te pakken gebruik:

 tar xvf somefiles.tar 

Waar x extract betekent.

Om een ​​gecomprimeerde tarball uit te pakken, gebruik je:

 tar xvzf somefiles.tgz 

De optie z vertelt tar dat gzip werd gebruikt om het originele archief te comprimeren. In plaats van z kunt u j, J of Z afhankelijk van het compressiealgoritme dat werd gebruikt toen het bestand werd gemaakt.

Om de bestanden uit een 7-Zip-bestand te extraheren, gebruikt u:

 7zr e somefiles.tar.7z 

Conclusie

Linux biedt een breed scala aan archiverings- en compressieopdrachten. Probeer eens te experimenteren met de zip- en xz-commando's, ze werken op een vergelijkbare manier als de andere tools die hier worden genoemd. Als je vastloopt, moet je de man-pagina proberen te lezen, bijvoorbeeld man xz voor extra hulp.