logo

Tar kommando i Linux/Unix med exempel

Kommandot tar är en förkortning av bandarkiv i Linux. Detta kommando används för att skapa arkiv och extrahera arkivfilerna. I Linux , det är ett av de viktigaste kommandona som underlättar arkiveringsfunktionalitet. Vi kan använda det här kommandot för att skapa okomprimerade och komprimerade arkivfiler och ändra och underhålla dem också.

Tar är ett verktyg för datorprogram för att samla flera filer till en enda arkivfil i datoranvändning. Ofta är det känt som tarball för säkerhetskopiering och distribution. Titeln är hämtad från 'bandarkiv' eftersom den faktiskt utvecklades för att specificera data på sekventiella I/O-enheter som inte använder något av deras filsystem. Arkivdatagrupperna som skapas av tar inkluderar många filsystemparametrar som katalogorganisation, filåtkomstbehörighet, ägande, tidsstämplar och namn. Till förmån för pax, POSIX övergiven tjära, tjära ser ändå utbredd användning.

Först tillkännagavs det i version 7 Unix i januari 1979, och ersatte tp-programmet. För att lagra data standardiserades filstrukturen i POSIX.1-1988 och senare POSIX.1-2001 och blev ett mönster som stöddes av nästan alla moderna filarkiveringssystem. Unix-liknande operativsystem innehåller vanligtvis verktyg för att stödja tar-filer och verktyg som används för att komprimera dem, som bzip2 och gzip.
Sedan Microsofts uppdatering den 10 april 2018 har BSD-tar funnits i Microsoft Windows, och det finns två eller flera tredjepartsverktyg för att läsa och skriva dessa mönster på Windows.

Filformat för tar

Det finns många tar-filformat tillgängliga, inklusive nuvarande och historiska. Två tar-format är skrivna i POSIX: pax och ustar.

Rubrik

Filrubrikposten innehåller metadata för en fil. I rubrikposten kodas informationen i ASCII-standarderna för att säkerställa flexibilitet över distinkta arkitekturer med hjälp av distinkta byteordningar. Därför, om varje fil är en ASCII-textfil i ett arkiv och innehåller ASCII-namn, är arkivet en ASCII-textfil (som har flera NUL-tecken).

Flera fält nämns i följande tabell, definierade av det faktiska Unix-tjärformatet. Tabellen med länkfil/indikatortyp innehåller några moderna tillägg. Ett fält fylls med olika NUL-bytes om det inte används.

Pre-POSIX.1-1988 tar rubrik:

Fält Fältstorlek Fältförskjutning
Filnamn 100 0
Filläge 8 100
Numeriskt användar-ID för ägaren 8 108
Numeriskt användar-ID för gruppen 8 116
Byte filstorlek 12 124
Senaste ändringstid i form av numerisk Unix-tid 12 136
Kontrollsumma för rubrikposten 8 148
Länkindikator 1 156
Länkat filnamn 100 157

Ustart format

I Ustar-formatet skriver och läser nästan alla moderna tar-program arkiv, tillkännagav av POSIX IEEE P1003.1-standarden från 1988. Det introducerade extra rubrikfält. Tidigare tar-program skulle undvika ytterligare information, men nya program kommer att kontrollera närvaron av 'Ustar'-strängen för att avgöra om det nyare formatet används.

Fält Fältstorlek Fältförskjutning
Många fält, som i föregående format 156 0
Skriv flagga 1 156
Liknande fält som i föregående format 100 157
'ustar' Ustar-indikator, sedan NUL 6 257
'00' Ustar-version 2 263
Ägarens användarnamn 32 265
Gruppnamn på ägaren 32 297
Huvudnummer på enheten 8 329
Mindre nummer på enheten 8 337
Filnamnsprefix 155 3. 4. 5

POSIX.1-2001/st

Sun föreslog en teknik för att lägga till tillägg till ett tjärformat 1997. Senare godkändes den för POSIX.1-2001-standarden. Formatet kallas pax-format eller utökat tar-format. Vissa taggar specificeras av POSIX-standarden, inklusive mtime, atime, linkpath, gname, uname, sizes, gid, uid och en teckenuppsättningsdefinition för grupp-/användarnamn och sökvägsnamn.

Viktiga implementeringar av tjära

Nyckelimplementeringarna nämns i ursprungsordningen:

    solaris tjära kommer som standard på Solaris OS, baserat på den faktiska Unix V7. GNU tar är en standard på nästan alla Linux-distributioner. Den är baserad på en public domain-implementering pdtar som började 1987. Nya utgåvor kan använda många format, såsom GNU, pax, v7 och ustar. FreeBSD tar har blivit en standardtjära på nästan alla Berkeley Software Distribution-baserade operativsystem, som Mac OS X. Skily tjära är historiskt viktig eftersom några av dess tillägg var kända. Den släpptes första gången i april 1997. Python tarfil stöder två eller flera tar-format, såsom gnu, pax och ustar; den kan läsa men inte göra SunOS tar-utvidgade och V7-format; pax är ett standardformat för att skapa arkiv. Det har varit tillgängligt för användare sedan 2003.

Dessutom kan de flesta cpio- och pax-implementeringar skapa och läsa två eller flera tar-filtyper.

Syntax för tar kommando:

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

Alternativ i tar-kommandot

Olika alternativ i tar-kommandot listas nedan:

    -c:Detta alternativ används för att skapa arkivet.-f:Detta alternativ används för att skapa ett arkiv tillsammans med det angivna namnet på filen.-x:Det här alternativet används för att extrahera arkiv.-i:Den kan användas för att lägga till ett arkiv till den befintliga arkivfilen.-t:Den används för att visa eller lista filer i den arkiverade filen.-A:Det här alternativet används för att sammanfoga arkivfilerna.-i:Den kan användas för att visa utförlig information.-j:Den används för att filtrera arkiv tar-filer med hjälp av tbzip.-Med:Det är en zip-fil och informerar tar-kommandot som gör en tar-fil med hjälp av gzip.-r:Det här alternativet används för att uppdatera och lägga till en katalog eller fil i en befintlig .tar-fil.-I:Detta alternativ används för att verifiera arkivfilen.

Introduktion till Arkivfil

Arkivfilen kan definieras som en fil som innehåller flera filer med metadata. Dessa filer används för att samla mer än en datafil tillsammans i en enskild fil för enklare lagring och portabilitet. Den kan också användas för att komprimera filer för att förbruka mindre lagringsutrymme.

Exempel på tar-kommando

Några av de viktiga exemplen som används ofta i tar-kommandot är följande:

1. Skapa ett okomprimerat tar-arkiv med -cvf-alternativet

Detta alternativ gör en tar-fil känd som file.tar . Det är arkivet för varje .txt-fil inuti mydir katalog.

Kommandot är som följer:

 $ tar cvf file.tar *.txt 

Tar kommando i Linux

2. Extrahera filer genom arkivet med alternativet -xvf

Det här alternativet kan extrahera filer genom arkiv.

Kommandot är som följer:

Sridevi
 $ tar xvf file.tar 

Tar kommando i Linux

3. gzip-komprimering över tar-arkiv med -z-alternativet

Detta alternativ gör en tar-fil känd som file.tar.gz. Det är arkivet för varje .txt-fil.

Kommandot är som följer:

 $ tar cvzf file.tar.gz *.txt 

Tar kommando i Linux

4. Extrahera gzip tar-arkivet med alternativet -xvzf

Det här alternativet kan extrahera filerna genom file.tar.gz tar arkiverade filer.

Kommandot är som följer:

 $ tar xvzf file.tar.gz 

Tar kommando i Linux

5. Skapa komprimerade tar-filer med alternativet -j

Det här alternativet hjälper oss att skapa och komprimera arkivfiler. Både dekomprimering och komprimering tar längre tid jämfört med gzip.

Kommandot är som följer:

 $ tar cvfj file.tar.tbz hello1.txt 

Tar kommando i Linux

6. Ta bort en enda specificerad katalog eller fil i Linux

Det här alternativet används för att ta bort alla filer i vår nuvarande katalog eller i den angivna katalogen med alternativet -C.

Kommandot är som följer:

radering från ett binärt sökträd
 $ 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. Ta bort flera .tar.tbz-, .tar.gz-, .tar-filer i Linux

Detta alternativ kommer att hjälpa oss att sprida eller extrahera mer än en fil från tar.bz2, tar.gz och en tar-arkivfil.

Exemplet på detta alternativ är följande:

 $ 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. Kontrollera storleken på den befintliga tar.tbz, tar.gz, tar-filen

Kommandot hjälper oss att visa arkivfilens storlek i kilobyte (KB) som nämns ovan.

Kommandot är som följer:

 $ 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. Uppdatera den befintliga tar-filen

I Linux är kommandot för att uppdatera en befintlig tar-fil som följer:

 $ tar rvf file.tar *.txt 

10. Innehållslista och beskriv tar-filen med alternativet tf

Det här alternativet hjälper oss att lista hela arkivfilens lista. Vi kan också lista särskilt innehåll i vilken tar-fil som helst.

Kommandot är som följer:

 $ tar tf file.tar 

Tar kommando i Linux

11. Visa arkivet med alternativet -tvf

I Linux kan vi använda alternativet -tvf för att se arkivet.

Kommandot är som följer:

hur man får aktuellt datum i java
 $ tar -tvf file.tar 

Tar kommando i Linux

12. Skicka filnamnet som argument för att hitta en tar-fil

Det här alternativet kan visa de arkiverade filerna med deras information.

Kommandot är som följer:

 $ tar tvf file.tar filename 

Tar kommando i Linux

13. Använd pipe för att kasta 'grep kommando' för att söka efter det vi söker efter

Det här alternativet hjälper oss att bara lista den nämnda bilden eller texten i grepp genom arkiverade filer.

Kommandot är som följer:

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

Eller,

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

Tar kommando i Linux

Introduktion till jokertecken

Alternativt hänvisas jokertecken till som ett jokertecken eller jokertecken i Linux. Det är en symbol som används för att representera eller ersätta flera tecken.

Vanligtvis är jokertecken antingen ett frågetecken (?) som illustrerar ett individuellt tecken eller en asterisk (*) som illustrerar flera tecken.

Exempel-

14. Hitta en bild i .webp-format

Det kommer att hjälpa oss att bara extrahera filer tillsammans med .webp-tillägget från file.tar-arkivet. Alternativet -wildcards informerar tar för tolkning av jokertecken i filnamnet som ska extraheras.

Namnet på filen (*.webp) är inneslutet i de enstaka citattecken för att skydda jokertecknet (*) genom att felaktigt utökas av något skal.

Kommandot är som följer:

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

Tar kommando i Linux

Obs: I kommandot ovan används '*'-symbolen i positionen för filnamnet för att ta varje fil tillgänglig i den specifika katalogen.

15. Ta bort filer från tar-arkivet

Vi kan använda alternativet --delete för att ta bort filer och ett tar-arkiv.

Kommandot är som följer:

 $ tar --delete -f archive.tar file_name 

Exempel:

 tar -delete -f file.tar hello1.txt 

Produktion:

Tar kommando i Linux

hej1.txt filen har tagits bort från file.tar-arkivet:

Tar kommando i Linux