logo

Tar kommando i Linux/Unix med eksempler

Tar kommandoen er en forkortelse for båndarkiv i Linux. Denne kommando bruges til at oprette arkiv og udpakke arkivfilerne. I Linux , er det en af ​​de væsentlige kommandoer, som letter arkiveringsfunktionaliteten. Vi kan bruge denne kommando til at oprette ukomprimerede og komprimerede arkivfiler og også ændre og vedligeholde dem.

Tar er et værktøj til computersoftware til at samle flere filer i en enkelt arkivfil i computere. Ofte er det kendt som tarball til backup- og distributionsformål. Titlen er hentet fra 'tape archive', fordi den faktisk blev udviklet til at specificere data på sekventielle I/O-enheder, der ikke bruger nogen af ​​deres filsystemer. Arkivdatagrupperne lavet af tar inkluderer mange filsystemparametre som biblioteksorganisation, filadgangstilladelse, ejerskab, tidsstempler og navn. Til fordel for pax, POSIX forladt tjære, tjære ser alligevel udbredt brug.

Først blev det annonceret i Version 7 Unix i januar 1979, der erstattede tp-programmet. For at gemme dataene blev filstrukturen standardiseret i POSIX.1-1988 og senere POSIX.1-2001 og blev et mønster understøttet af næsten alle moderne filarkiveringssystemer. Unix-lignende operativsystemer indeholder generelt værktøjer til at understøtte tar-filer og hjælpeprogrammer, der bruges til at komprimere dem, såsom bzip2 og gzip.
Siden Microsoft 10. april 2018-opdateringen har BSD-tar været indeholdt i Microsoft Windows, og der er to eller flere tredjepartsværktøjer til at læse og skrive disse mønstre på Windows.

Filformater af tar

Der er mange tar-filformater tilgængelige, inklusive nuværende og historiske. To tar-formater er skrevet i POSIX: pax og ustar.

Header

Filhovedposten inkluderer metadata for en fil. I header-posten er informationen kodet i ASCII-standarderne for at sikre fleksibilitet på tværs af forskellige arkitekturer ved hjælp af distinkte byte-bestillinger. Derfor, hvis hver fil er en ASCII-tekstfil i et arkiv og indeholder ASCII-navne, er arkivet en ASCII-tekstfil (med flere NUL-tegn).

Flere felter er nævnt i følgende tabel, defineret af det faktiske Unix-tar-format. Tabellen med linkfil/indikatortype indeholder et par moderne udvidelser. Et felt er udfyldt med forskellige NUL-bytes, hvis det er ubrugt.

Pre-POSIX.1-1988 tjæreoverskrift:

Mark Feltstørrelse Feltforskydning
Filnavn 100 0
Filtilstand 8 100
Numerisk bruger-id for ejeren 8 108
Numerisk bruger-id for gruppen 8 116
Byte filstørrelse 12 124
Sidste ændringstid i form af numerisk Unix-tid 12 136
Kontrolsum for overskriftsposten 8 148
Link indikator 1 156
Linket filnavn 100 157

Ustart format

I Ustar-formatet skriver og læser næsten alle moderne tar-programmer arkiver, annonceret af POSIX IEEE P1003.1-standarden fra 1988. Det introducerede ekstra header-felter. Tidligere tar-programmer ville undgå de yderligere oplysninger, men nye programmer vil kontrollere 'Ustar'-strengens tilstedeværelse for at afgøre, om det nyere format er i brug.

Mark Feltstørrelse Feltforskydning
Mange felter, som i det tidligere format 156 0
Skriv flag 1 156
Lignende felt som i det forrige format 100 157
'ustar' Ustar-indikator, derefter NUL 6 257
'00' Ustar-version 2 263
Brugernavn på ejeren 32 265
Ejerens gruppenavn 32 297
Enhedens hovednummer 8 329
Mindre nummer på enheden 8 337
Filnavns præfiks 155 3. 4. 5

POSIX.1-2001/pax

Sun foreslog en teknik til at tilføje udvidelser til et tar-format i 1997. Senere blev det godkendt til POSIX.1-2001-standarden. Formatet kaldes pax-format eller udvidet tar-format. Nogle tags er specificeret af POSIX-standarden, herunder mtime, atime, linkpath, gname, uname, sizes, gid, uid og en tegnsætdefinition for gruppe-/brugernavne og stinavne.

Nøgleimplementeringer af tjære

Nøgleimplementeringerne er nævnt i oprindelsesrækkefølgen:

    solaris tjære kommer som standard på Solaris OS, baseret på den faktiske Unix V7. GNU tar er en standard på næsten alle Linux-distributioner. Den er baseret på en public domain implementering pdtar, som begyndte i 1987. Nylige udgaver kan bruge mange formater, såsom GNU, pax, v7 og ustar. FreeBSD tjære er blevet en standard tar på næsten alle Berkeley Software Distribution-baserede OS, såsom Mac OS X. Skily tjære er historisk vigtig, da nogle få af dens udvidelser var berømte. Den udkom første gang i april 1997. Python-tarfil understøtter to eller flere tar-formater, såsom gnu, pax og ustar; den kan læse, men ikke gøre SunOS tar-udvidet og V7-formater; pax er et standardformat til oprettelse af arkiver. Den har været tilgængelig for brugere siden 2003.

Derudover kan de fleste cpio- og pax-implementeringer oprette og læse to eller flere tar-filtyper.

Syntaks for tar-kommando:

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

Indstillinger i tar-kommandoen

Forskellige muligheder i tar-kommandoen er angivet nedenfor:

    -c:Denne mulighed bruges til at oprette arkivet.-f:Denne mulighed bruges til at oprette et arkiv sammen med det angivne navn på filen.-x:Denne mulighed bruges til at udtrække arkiver.-i:Det kan bruges til at tilføje et arkiv til den eksisterende arkivfil.-t:Det bruges til at vise eller liste filer inde i den arkiverede fil.-EN:Denne mulighed bruges til at sammenkæde arkivfilerne.-i:Det kan bruges til at vise detaljerede oplysninger.-j:Det bruges til at filtrere arkiv tar-filer ved hjælp af tbzip.-Med:Det er en zip-fil og informerer tar-kommandoen, der laver en tar-fil ved hjælp af gzip.-r:Denne mulighed bruges til at opdatere og tilføje en mappe eller fil i en eksisterende .tar-fil.-I:Denne mulighed bruges til at verificere arkivfilen.

Introduktion til arkivfil

Arkivfilen kan defineres som en fil, der indeholder flere filer med metadata. Disse filer bruges til at samle mere end én datafil sammen i en individuel fil for lettere opbevaring og portabilitet. Det kan også bruges til at komprimere filer for at forbruge mindre lagerplads.

Eksempler på tar-kommando

Nogle af de vigtige eksempler, der er meget brugt i tar-kommando, er som følger:

1. Lav et ukomprimeret tar-arkiv med -cvf-mulighed

Denne mulighed gør en tar-fil kendt som file.tar . Det er arkivet for hver .txt-fil indeni mydir vejviser.

Kommandoen er som følger:

 $ tar cvf file.tar *.txt 

Tar kommando i Linux

2. Udpakning af filer gennem arkivet med -xvf option

Denne mulighed kan udpakke filer gennem arkiver.

Kommandoen er som følger:

 $ tar xvf file.tar 

Tar kommando i Linux

3. gzip-komprimering over tar-arkiv med -z mulighed

Denne mulighed gør en tar-fil kendt som file.tar.gz. Det er arkivet for hver .txt-fil.

Kommandoen er som følger:

 $ tar cvzf file.tar.gz *.txt 

Tar kommando i Linux

4. Udpakning af gzip tar-arkivet med -xvzf option

Denne mulighed kan udpakke filerne gennem file.tar.gz tar arkiverede filer.

Kommandoen er som følger:

 $ tar xvzf file.tar.gz 

Tar kommando i Linux

5. Lave komprimerede tar-filer med -j-indstillingen

Denne mulighed hjælper os med at oprette og komprimere arkivfiler. Både dekomprimering og komprimering tager længere tid sammenlignet med gzip.

Kommandoen er som følger:

 $ tar cvfj file.tar.tbz hello1.txt 

Tar kommando i Linux

6. Fjern en enkelt specificeret mappe eller fil i Linux

Denne mulighed bruges til at fjerne tarering af enhver fil i vores nuværende mappe eller inde i den angivne mappe med -C-indstillingen.

Kommandoen er som følger:

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

Tar kommando i Linux

Eller,

 $ tar -xvf file.tar 

Tar kommando i Linux

7. Fjern flere .tar.tbz-, .tar.gz-, .tar-filer i Linux

Denne mulighed vil hjælpe os til spredning eller udpak mere end én fil fra tar.bz2, tar.gz og en tar-arkivfil.

Eksemplet på denne mulighed er som følger:

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

Tar kommando i Linux

Eller,

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

Tar kommando i Linux

Eller,

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

Tar kommando i Linux

8. Tjek størrelsen på den eksisterende tar.tbz, tar.gz, tar-fil

Kommandoen hjælper os med at vise arkivfilens størrelse i kilobytes (KB), som er nævnt ovenfor.

Kommandoen er som følger:

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

Eller,

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

Eller,

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

Tar kommando i Linux

9. Opdater den eksisterende tar-fil

I Linux er kommandoen til opdatering af en eksisterende tar-fil som følger:

til loop java
 $ tar rvf file.tar *.txt 

10. Indholdsliste og beskriv tar-filen med tf-indstillingen

Denne mulighed hjælper os med at liste hele arkivfilens liste. Vi kan også angive bestemt indhold i enhver tar-fil.

Kommandoen er som følger:

 $ tar tf file.tar 

Tar kommando i Linux

11. Se arkivet med muligheden -tvf

I Linux kan vi bruge -tvf-indstillingen til at se arkivet.

Kommandoen er som følger:

 $ tar -tvf file.tar 

Tar kommando i Linux

12. Send filnavnet som argument for at finde en tar-fil

Denne mulighed kan se de arkiverede filer med deres oplysninger.

Kommandoen er som følger:

 $ tar tvf file.tar filename 

Tar kommando i Linux

13. Brug af pipe til at kaste 'grep-kommando' til at søge efter det, vi søger efter

Denne mulighed hjælper os med kun at vise det nævnte billede eller den nævnte tekst greb gennem arkiverede filer.

Kommandoen er som følger:

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

Eller,

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

Tar kommando i Linux

Introduktion til jokertegn

Alternativt omtales jokertegn som jokertegn eller jokertegn i Linux. Det er et symbol, der bruges til at repræsentere eller erstatte flere tegn.

Typisk er jokertegn enten et spørgsmålstegn (?), som illustrerer et individuelt tegn, eller en stjerne (*), der illustrerer flere tegn.

Eksempel-

14. Find et billede i .webp-format

Det vil hjælpe os til kun at udpakke filer sammen med .webp-udvidelsen fra file.tar-arkivet. Indstillingen -wildcards informerer tar om fortolkning af jokertegn i filnavnet, der skal udpakkes.

Navnet på filen (*.webp) er indesluttet i de enkelte anførselstegn for at beskytte jokertegnet (*) ved at blive ukorrekt udvidet af enhver shell.

Kommandoen er som følger:

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

Tar kommando i Linux

Bemærk: I ovenstående kommando anvendes '*'-symbolet i positionen for navnet på filen for at tage hver fil tilgængelig i den specifikke mappe.

15. Slet filer fra tar-arkivet

Vi kan bruge --delete-indstillingen til at fjerne filer og et tar-arkiv.

Kommandoen er som følger:

 $ tar --delete -f archive.tar file_name 

Eksempel:

 tar -delete -f file.tar hello1.txt 

Produktion:

Tar kommando i Linux

hej1.txt filen er blevet fjernet fra file.tar-arkivet:

Tar kommando i Linux