logo

Tar-kommando i Linux/Unix med eksempler

Tar-kommandoen er en forkortelse for båndarkiv i Linux. Denne kommandoen brukes til å lage arkiv og trekke ut arkivfilene. I Linux , er det en av de essensielle kommandoene som letter arkiveringsfunksjonalitet. Vi kan bruke denne kommandoen til å lage ukomprimerte og komprimerte arkivfiler og endre og vedlikeholde dem også.

Tar er et verktøy for dataprogramvare for å samle flere filer i en enkelt arkivfil i databehandling. Ofte er det kjent som tarball for sikkerhetskopiering og distribusjonsformål. Tittelen er hentet fra 'tape archive' fordi den faktisk ble utviklet for å spesifisere data på sekvensielle I/O-enheter som ikke bruker noen av filsystemene deres. Arkivdatagruppene laget av tar inkluderer mange filsystemparametere som katalogorganisering, filtilgangstillatelse, eierskap, tidsstempler og navn. Til fordel for pax, POSIX forlatt tjære, tjære ser likevel utbredt bruk.

Først ble det kunngjort i versjon 7 Unix i januar 1979, og erstattet tp-programmet. For å lagre dataene ble filstrukturen standardisert i POSIX.1-1988 og senere POSIX.1-2001 og ble et mønster støttet av nesten alle moderne filarkiveringssystemer. Unix-lignende operativsystemer inneholder vanligvis verktøy for å støtte tar-filer og verktøy som brukes til å komprimere dem, som bzip2 og gzip.
Siden Microsoft 10. april 2018-oppdateringen har BSD-tar vært inneholdt i Microsoft Windows, og det er to eller flere tredjepartsverktøy for å lese og skrive disse mønstrene på Windows.

Filformater av tar

Det er mange tar-filformater tilgjengelig, inkludert nåværende og historiske. To tar-formater er skrevet i POSIX: pax og ustar.

Overskrift

Filoverskriftsposten inkluderer metadataene til en fil. I overskriftsposten er informasjonen kodet i ASCII-standardene for å sikre fleksibilitet på tvers av distinkte arkitekturer ved bruk av distinkte byte-bestillinger. Derfor, hvis hver fil er en ASCII-tekstfil i et arkiv og inneholder ASCII-navn, er arkivet en ASCII-tekstfil (som har flere NUL-tegn).

Flere felt er nevnt i tabellen nedenfor, definert av det faktiske Unix-tjæreformatet. Tabellen for lenkefil/indikatortype inneholder noen få moderne utvidelser. Et felt fylles med forskjellige NUL-byte hvis det ikke er i bruk.

Pre-POSIX.1-1988 tjæreoverskrift:

Felt Feltstørrelse Feltforskyvning
Filnavn 100 0
Filmodus 8 100
Numerisk bruker-ID for eieren 8 108
Numerisk bruker-ID for gruppen 8 116
Byte filstørrelse 12 124
Siste endringstid i form av numerisk Unix-tid 12 136
Sjekksum for overskriftsposten 8 148
Koblingsindikator 1 156
Koblet filnavn 100 157

Ustart format

I Ustar-formatet skriver og leser nesten alle moderne tar-programmer arkiver, annonsert av POSIX IEEE P1003.1-standarden fra 1988. Det introduserte ekstra overskriftsfelt. Tidligere tar-programmer ville unngå tilleggsinformasjonen, men nye programmer vil sjekke tilstedeværelsen av 'Ustar'-strengen for å avgjøre om det nyere formatet er i bruk.

Felt Feltstørrelse Feltforskyvning
Mange felt, som i forrige format 156 0
Skriv flagg 1 156
Lignende felt som i forrige format 100 157
'ustar' Ustar-indikator, deretter NUL 6 257
'00' Ustar-versjon 2 263
Brukernavnet til eieren 32 265
Gruppenavnet til eieren 32 297
Hovednummeret til enheten 8 329
Mindre nummer på enheten 8 337
Filnavnprefiks 155 3. 4. 5

POSIX.1-2001/pax

Sun foreslo en teknikk for å legge til utvidelser til et tjæreformat i 1997. Senere ble det godkjent for POSIX.1-2001-standarden. Formatet kalles pax-format eller utvidet tar-format. Noen tagger er spesifisert av POSIX-standarden, inkludert mtime, atime, linkpath, gname, uname, sizes, gid, uid og en tegnsettdefinisjon for gruppe-/brukernavn og banenavn.

Viktige implementeringer av tjære

Nøkkelimplementeringene er nevnt i opprinnelsesrekkefølgen:

    solaris tjære kommer som standard på Solaris OS, basert på den faktiske Unix V7. GNU tar er en standard på nesten alle Linux-distribusjoner. Den er basert på en public domain implementering pdtar som startet i 1987. Nyere utgaver kan bruke mange formater, som GNU, pax, v7 og ustar. FreeBSD tar har blitt en standard tjære på nesten alle Berkeley Software Distribution-baserte OS, som Mac OS X. Schily tjære er historisk viktig ettersom noen av utvidelsene var berømte. Den ble først utgitt i april 1997. Python-tarfil støtter to eller flere tar-formater, for eksempel gnu, pax og ustar; den kan lese, men ikke gjøre SunOS tar-utvidet og V7-formatene; pax er et standardformat for arkivoppretting. Den har vært tilgjengelig for brukere siden 2003.

I tillegg kan de fleste cpio- og pax-implementeringer opprette og lese to eller flere tar-filtyper.

Syntaks for tar-kommando:

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

Alternativer i tar-kommandoen

Ulike alternativer i tar-kommandoen er oppført nedenfor:

    -c:Dette alternativet brukes til å lage arkivet.-f:Dette alternativet brukes til å lage et arkiv sammen med det angitte navnet på filen.-x:Dette alternativet brukes til å trekke ut arkiver.-i:Den kan brukes til å legge til et arkiv til den eksisterende arkivfilen.-t:Den brukes til å vise eller liste filer inne i den arkiverte filen.-EN:Dette alternativet brukes til å sette sammen arkivfilene.-i:Den kan brukes til å vise detaljert informasjon.-j:Den brukes til å filtrere arkiv tar-filer ved hjelp av tbzip.-Med:Det er en zip-fil og informerer tar-kommandoen som lager en tar-fil ved hjelp av gzip.-r:Dette alternativet brukes til å oppdatere og legge til en katalog eller fil i en eksisterende .tar-fil.-I:Dette alternativet brukes til å verifisere arkivfilen.

Introduksjon til arkivfil

Arkivfilen kan defineres som en fil som inneholder flere filer med metadata. Disse filene brukes til å samle mer enn én datafil sammen i en individuell fil for enklere lagring og portabilitet. Den kan også brukes til å komprimere filer for å bruke mindre lagringsplass.

Eksempler på tar-kommando

Noen av de viktige eksemplene som er mye brukt i tar-kommando er som følger:

1. Lage et ukomprimert tar-arkiv med -cvf-alternativet

Dette alternativet gjør en tar-fil kjent som file.tar . Det er arkivet for hver .txt-fil inne mydir katalog.

Kommandoen er som følger:

 $ tar cvf file.tar *.txt 

Tar kommando i Linux

2. Pakk ut filer gjennom arkivet med -xvf-alternativet

Dette alternativet kan pakke ut filer gjennom arkiver.

Kommandoen er som følger:

 $ tar xvf file.tar 

Tar kommando i Linux

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

Dette alternativet gjør en tar-fil kjent 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. Pakk ut gzip tar-arkivet med -xvzf-alternativet

Dette alternativet kan pakke ut filene gjennom file.tar.gz tar arkiverte filer.

Kommandoen er som følger:

 $ tar xvzf file.tar.gz 

Tar kommando i Linux

5. Lage komprimerte tar-filer med -j-alternativet

Dette alternativet vil hjelpe oss å lage og komprimere arkivfiler. Både dekomprimering og komprimering tar mer tid sammenlignet med gzip.

Kommandoen er som følger:

 $ tar cvfj file.tar.tbz hello1.txt 

Tar kommando i Linux

6. Fjern en enkelt spesifisert katalog eller fil i Linux

Dette alternativet brukes til å fjerne tareringen av enhver fil i vår nåværende katalog eller inne i den angitte katalogen med -C-alternativet.

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

Dette alternativet vil hjelpe oss spre eller pakk ut mer enn én fil fra tar.bz2, tar.gz og en tar-arkivfil.

Eksemplet på dette alternativet 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. Sjekk størrelsen på den eksisterende tar.tbz, tar.gz, tar-filen

Kommandoen vil hjelpe oss å vise arkivfilens størrelse i kilobyte (KB) som er nevnt 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. Oppdater den eksisterende tar-filen

I Linux er kommandoen for å oppdatere en eksisterende tar-fil som følger:

i java
 $ tar rvf file.tar *.txt 

10. Innholdsliste og beskriv tar-filen med tf-alternativet

Dette alternativet vil hjelpe oss å liste hele arkivfilens liste. Vi kan også liste opp spesielt innhold i enhver tar-fil.

Kommandoen er som følger:

 $ tar tf file.tar 

Tar kommando i Linux

11. Se arkivet med alternativet -tvf

I Linux kan vi bruke alternativet -tvf for å se arkivet.

Kommandoen er som følger:

 $ tar -tvf file.tar 

Tar kommando i Linux

12. Send filnavnet som argument for å finne en tar-fil

Dette alternativet kan vise de arkiverte filene med deres informasjon.

Kommandoen er som følger:

 $ tar tvf file.tar filename 

Tar kommando i Linux

13. Bruke pipe for å kaste 'grep-kommando' for å søke etter det vi søker etter

Dette alternativet vil hjelpe oss å bare liste det nevnte bildet eller teksten inn grep gjennom arkiverte 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

Introduksjon til jokertegn

Alternativt blir jokertegn referert til som jokertegn eller jokertegn i Linux. Det er et symbol som brukes til å representere eller erstatte flere tegn.

Vanligvis er jokertegn enten et spørsmålstegn (?) som illustrerer et enkelt tegn eller en stjerne (*) som illustrerer flere tegn.

Eksempel-

14. Finn et .webp-formatbilde

Det vil hjelpe oss med å trekke ut bare filer sammen med .webp-utvidelsen fra file.tar-arkivet. Alternativet -jokertegn informerer tar for å tolke jokertegn i filnavnet som skal trekkes ut.

Navnet på filen (*.webp) er omsluttet av de enkle anførselstegnene for å beskytte jokertegnet (*) ved å være ukorrekt utvidet av ethvert skall.

Kommandoen er som følger:

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

Tar kommando i Linux

Merk: I kommandoen ovenfor brukes '*'-symbolet i posisjonen til navnet på filen for å ta hver fil tilgjengelig i den spesifikke katalogen.

15. Slett filer fra tar-arkivet

Vi kan bruke --delete-alternativet for å 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 

Produksjon:

Tar kommando i Linux

hei1.txt filen er fjernet fra file.tar-arkivet:

Tar kommando i Linux