logo

Tar-opdracht in Linux/Unix met voorbeelden

Het tar-commando is een afkorting van tape-archief onder Linux. Deze opdracht wordt gebruikt voor het maken van een archief en het uitpakken van de archiefbestanden. In Linux , het is een van de essentiële opdrachten die de archiveringsfunctionaliteit vergemakkelijken. We kunnen deze opdracht gebruiken voor het maken van ongecomprimeerde en gecomprimeerde archiefbestanden en deze ook wijzigen en onderhouden.

Tar is een hulpprogramma van computersoftware om verschillende bestanden in één computerarchiefbestand te verzamelen. Vaak staat het bekend als tarball voor back-up- en distributiedoeleinden. De titel is ontleend aan 'tape archive' omdat het feitelijk is ontwikkeld om gegevens op sequentiële I/O-apparaten te specificeren die geen van hun bestandssystemen gebruiken. De archiefgegevensgroepen die door tar zijn gemaakt, bevatten veel bestandssysteemparameters, zoals maporganisatie, toegangsrechten voor bestanden, eigendom, tijdstempels en naam. Ten gunste van pax heeft POSIX teer verlaten, maar teer wordt nog steeds op grote schaal gebruikt.

Ten eerste werd het aangekondigd in versie 7 Unix in januari 1979, ter vervanging van het tp-programma. Om de gegevens op te slaan, werd de bestandsstructuur gestandaardiseerd in POSIX.1-1988 en later POSIX.1-2001 en werd het een patroon dat door vrijwel alle moderne bestandsarchiveringssystemen werd ondersteund. Unix-achtige besturingssystemen bevatten over het algemeen tools voor het ondersteunen van tar-bestanden en hulpprogramma's die worden gebruikt om deze te comprimeren, zoals bzip2 en gzip.
Sinds Microsoft Update van 10 april 2018 is BSD-tar opgenomen in Microsoft Windows, en er zijn twee of meer tools van derden om deze patronen op Windows te lezen en te schrijven.

Bestandsformaten van tar

Er zijn veel tar-bestandsformaten beschikbaar, inclusief huidige en historische formaten. Er zijn twee tar-formaten geschreven in POSIX: pax en ustar.

Koptekst

Het bestandskoprecord bevat de metagegevens van een bestand. In het headerrecord wordt de informatie gecodeerd in de ASCII-standaarden om flexibiliteit tussen verschillende architecturen te garanderen met behulp van verschillende byte-ordeningen. Als elk bestand dus een ASCII-tekstbestand in een archief is en ASCII-namen bevat, is het archief een ASCII-tekstbestand (met verschillende NUL-tekens).

In de volgende tabel worden verschillende velden genoemd, gedefinieerd door het feitelijke Unix-tar-formaat. De linkbestand/indicatortypetabel bevat enkele moderne extensies. Een veld wordt gevuld met verschillende NUL-bytes als het niet wordt gebruikt.

Tar-header van vóór POSIX.1-1988:

Veld Veld grootte Veldcompensatie
Bestandsnaam 100 0
Bestandsmodus 8 100
Numerieke gebruikers-ID van de eigenaar 8 108
Numerieke gebruikers-ID van de groep 8 116
Byte-bestandsgrootte 12 124
Laatste wijzigingstijd in de vorm van numerieke Unix-tijd 12 136
Controlesom voor het headerrecord 8 148
Link-indicator 1 156
Gekoppelde bestandsnaam 100 157

Ustart-formaat

In het Ustar-formaat schrijft en leest bijna elk modern tar-programma archieven, aangekondigd door de POSIX IEEE P1003.1-standaard uit 1988. Het introduceerde extra headervelden. Eerdere tar-programma's zouden de aanvullende informatie vermijden, maar nieuwe programma's zullen de aanwezigheid van de 'Ustar'-reeks controleren om te beslissen of het nieuwere formaat in gebruik is.

Veld Veld grootte Veldcompensatie
Veel velden, zoals in het vorige formaat 156 0
Typ vlag 1 156
Een soortgelijk veld als in het vorige formaat 100 157
'ustar' Ustar-indicator, daarna NUL 6 257
'00' Ustar-versie 2 263
Gebruikersnaam van de eigenaar 32 265
Groepsnaam van de eigenaar 32 297
Hoofdnummer van het apparaat 8 329
Klein nummer van het apparaat 8 337
Voorvoegsel van bestandsnaam 155 3. 4. 5

POSIX.1-2001/pax

Sun stelde in 1997 een techniek voor om extensies aan een tar-formaat toe te voegen. Later werd het goedgekeurd voor de POSIX.1-2001-standaard. Het formaat wordt pax-formaat of uitgebreid tar-formaat genoemd. Sommige tags worden gespecificeerd door de POSIX-standaard, waaronder mtime, atime, linkpath, gname, uname,sizes, gid, uid en een tekensetdefinitie voor groeps-/gebruikersnamen en padnamen.

Belangrijkste implementaties van teer

De belangrijkste implementaties worden vermeld in de oorsprongsvolgorde:

    solaris teer wordt standaard geleverd op het Solaris-besturingssysteem, gebaseerd op de daadwerkelijke Unix V7. GNU-teer is een standaard op bijna elke Linux-distributie. Het is gebaseerd op een pdtar-implementatie in het publieke domein die in 1987 begon. Recente edities kunnen vele formaten gebruiken, zoals GNU, pax, v7 en ustar. FreeBSD-tar is een standaard tar geworden op bijna elk op Berkeley Software Distribution gebaseerd besturingssysteem, zoals Mac OS X. Schily teer is van historisch belang omdat enkele van de uitbreidingen beroemd waren. Het werd voor het eerst uitgebracht in april 1997. Python-tarbestand ondersteunt twee of meer tar-formaten, zoals gnu, pax en ustar; het kan de SunOS tar-extended- en V7-formaten lezen, maar niet maken; pax is een standaardformaat voor het maken van archieven. Het is sinds 2003 beschikbaar voor gebruikers.

Bovendien kunnen de meeste cpio- en pax-implementaties twee of meer tar-bestandstypen maken en lezen.

Syntaxis van tar-opdracht:

 tar [options] [archive-file] [directory or file to be archived] 

Opties in de tar-opdracht

Hieronder vindt u verschillende opties in de tar-opdracht:

    -C:Deze optie wordt gebruikt voor het maken van het archief.-F:Deze optie wordt gebruikt voor het maken van een archief samen met de opgegeven naam van het bestand.-X:Deze optie wordt gebruikt voor het uitpakken van archieven.-in:Het kan worden gebruikt om een ​​archief toe te voegen aan het bestaande archiefbestand.-T:Het wordt gebruikt voor het weergeven of weergeven van bestanden in het gearchiveerde bestand.-A:Deze optie wordt gebruikt voor het aaneenschakelen van de archiefbestanden.-in:Het kan worden gebruikt om uitgebreide informatie weer te geven.-J:Het wordt gebruikt voor het filteren van archief-tar-bestanden met behulp van tbzip.-Met:Het is een zip-bestand en informeert het tar-commando dat een tar-bestand maakt met behulp van gzip.-R:Deze optie wordt gebruikt voor het bijwerken en toevoegen van een map of bestand in een bestaand .tar-bestand.-IN:Deze optie wordt gebruikt voor het verifiëren van het archiefbestand.

Inleiding tot archiefbestand

Het archiefbestand kan worden gedefinieerd als een bestand dat meerdere bestanden met metagegevens bevat. Deze bestanden worden gebruikt om meer dan één gegevensbestand samen te verzamelen in een individueel bestand, voor eenvoudigere opslag en draagbaarheid. Het kan ook worden gebruikt voor het comprimeren van bestanden om minder opslagruimte te verbruiken.

Voorbeelden van tar-opdrachten

Enkele van de belangrijke voorbeelden die veel worden gebruikt in de tar-opdracht zijn als volgt:

1. Een ongecomprimeerd tar-archief maken met de optie -cvf

Deze optie maakt een tar-bestand bekend als bestand.tar . Het is het archief van elk .txt-bestand erin mijn map.

De opdracht is als volgt:

stapel in ds
 $ tar cvf file.tar *.txt 

Tar-opdracht in Linux

2. Bestanden uitpakken via het archief met de optie -xvf

Met deze optie kunnen bestanden via archieven worden uitgepakt.

De opdracht is als volgt:

 $ tar xvf file.tar 

Tar-opdracht in Linux

3. gzip-compressie via tar-archief met -z optie

Deze optie maakt een tar-bestand bekend als bestand.tar.gz. Het is het archief van elk .txt-bestand.

De opdracht is als volgt:

 $ tar cvzf file.tar.gz *.txt 

Tar-opdracht in Linux

4. Het gzip tar-archief uitpakken met de optie -xvzf

Met deze optie kunnen de bestanden worden uitgepakt via file.tar.gz tar-gearchiveerde bestanden.

De opdracht is als volgt:

 $ tar xvzf file.tar.gz 

Tar-opdracht in Linux

5. Gecomprimeerde tar-bestanden maken met de optie -j

Deze optie helpt ons bij het maken en comprimeren van archiefbestanden. Zowel decomprimeren als comprimeren kost meer tijd vergeleken met gzip.

De opdracht is als volgt:

 $ tar cvfj file.tar.tbz hello1.txt 

Tar-opdracht in Linux

6. Untar een enkele gespecificeerde map of bestand in Linux

Deze optie wordt gebruikt om elk bestand in onze huidige map of in de opgegeven map uit te pakken met de optie -C.

De opdracht is als volgt:

alya manasa
 $ tar -xvf file.tar -C file's path in the directory 

Tar-opdracht in Linux

Of,

 $ tar -xvf file.tar 

Tar-opdracht in Linux

7. Untar meerdere .tar.tbz-, .tar.gz-, .tar-bestanden in Linux

Deze optie zal ons daarbij helpen spreiding of extraheer meer dan één bestand uit tar.bz2, tar.gz en een tar-archiefbestand.

Het voorbeeld van deze optie is als volgt:

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Tar-opdracht in Linux

Of,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Tar-opdracht in Linux

Of,

 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Tar-opdracht in Linux

8. Controleer de grootte van het bestaande tar.tbz-, tar.gz-, tar-bestand

De opdracht helpt ons om de hierboven genoemde grootte van het archiefbestand in kilobytes (KB) weer te geven.

De opdracht is als volgt:

 $ tar -czf - file2.tar.tbz | wc -c 

Of,

 $ tar -czf - file1.tar.gz | wc -c 

Of,

 $ tar -czf - file.tar | wc -c 

Tar-opdracht in Linux

9. Werk het bestaande tar-bestand bij

In Linux is de opdracht voor het bijwerken van een bestaand tar-bestand als volgt:

 $ tar rvf file.tar *.txt 

10. Inhoudslijst en beschrijf het tar-bestand met de tf-optie

Deze optie helpt ons om de lijst van het hele archiefbestand weer te geven. We kunnen ook bepaalde inhoud in elk tar-bestand vermelden.

De opdracht is als volgt:

verklaring dekking
 $ tar tf file.tar 

Tar-opdracht in Linux

11. Bekijk het archief met de optie -tvf

In Linux kunnen we de optie -tvf gebruiken om het archief te bekijken.

De opdracht is als volgt:

 $ tar -tvf file.tar 

Tar-opdracht in Linux

12. Geef de bestandsnaam door als argument om een ​​tar-bestand te vinden

Met deze optie kunnen de gearchiveerde bestanden met hun informatie worden bekeken.

De opdracht is als volgt:

 $ tar tvf file.tar filename 

Tar-opdracht in Linux

13. Pipe gebruiken voor het genereren van 'grep-commando' om te zoeken waarnaar we zoeken

Deze optie helpt ons om alleen de genoemde afbeelding of tekst weer te geven greep via gearchiveerde bestanden.

De opdracht is als volgt:

 $ tar tvf file.tar | grep 'filename.file' 

Of,

 $ tar tvf file.tar | grep 'text to search' 

Tar-opdracht in Linux

Inleiding tot jokertekens

Als alternatief worden jokertekens in Linux een jokerteken of wild-teken genoemd. Het is een symbool dat wordt gebruikt voor het vertegenwoordigen of vervangen van meerdere tekens.

Jokertekens zijn doorgaans een vraagteken (?) dat een individueel teken illustreert, of een asterisk (*) dat meerdere tekens illustreert.

Voorbeeld-

14. Zoek een afbeelding in .webp-indeling

Het zal ons helpen om alleen bestanden samen met de .webp-extensie uit het file.tar-archief te extraheren. De optie -wildcards informeert tar over de interpretatie van jokertekens in de uit te pakken bestandsnaam.

De naam van het bestand (*.webp) wordt tussen enkele aanhalingstekens geplaatst om het jokerteken (*) te beschermen tegen onjuist uitvouwen door een shell.

De opdracht is als volgt:

 $ tar tvf file.tar --wildcards '*.webp' 

Tar-opdracht in Linux

Opmerking: In de bovenstaande opdracht wordt het symbool '*' toegepast op de positie van de naam van het bestand om elk bestand dat beschikbaar is in die specifieke map te nemen.

15. Verwijder bestanden uit het tar-archief

We kunnen de optie --delete gebruiken voor het verwijderen van bestanden en een tar-archief.

De opdracht is als volgt:

 $ tar --delete -f archive.tar file_name 

Voorbeeld:

 tar -delete -f file.tar hello1.txt 

Uitgang:

Tar-opdracht in Linux

hallo1.txt bestand is verwijderd uit het file.tar-archief:

Tar-opdracht in Linux