Vill du extrahera en enda fil eller mapp från ett TAR- eller TAR.GZ-arkiv? Så här kan du göra det på Linux med kommandot tar.

En tarball (TAR eller TAR.GZ) är en uppsättning filer som buntas ihop som ett enda arkiv som gör det enkelt att lagra och överföra ett stort antal filer lokalt eller över internet. Närhelst du behöver filerna kan du helt enkelt extrahera arkivet.

Tänk på ett scenario där du bara behöver en enda fil från ett stort arkiv. I ett sådant fall, istället för att extrahera hela arkivet, kan du bara extrahera den fil du behöver. Låt oss se hur.

Se innehållet i en Tarball

Om du bara vill se innehållet i en TAR- eller TAR.GZ-fil, du behöver inte extrahera den. Använd istället följande kommando för att se vad som finns inuti:

tar -tvf [archive.tar]
tar -ztvf [archive.tar.gz]

Detta kommer att skriva ut listan över alla filer och kataloger i arkivet.

Extrahera en enda fil från Tarball

För att extrahera en enskild fil från TAR eller TAR.GZ, använd följande kommandoformat:

tar -xvf [archive.tar] [sökväg till fil]
tar -zxvf [archive.tar.gz] [sökväg till fil]
instagram viewer

Kom ihåg att du måste ange hela sökvägen till filen du vill extrahera. Du kan hitta hela sökvägen till filen eller katalogen med hjälp av tar -tvf [archive.tar] kommando.

För att extrahera en fil test1.txt från test.tar och test.tar.gz filer, skulle kommandona vara:

tar -xvf test.tar test1.txt
tar -zxvf test.tar.gz test1.txt

...var:

  1. -x används för att extrahera filer från arkivet
  2. -v används för att se framsteg när de extraheras
  3. -f används för att specificera tarball-namnet
  4. -z används för att dekomprimera TAR.GZ-filer

Dessa kommandon extraherar den angivna filen i den aktuella terminalkatalogen.

Extrahera en enda katalog från Tarball

På samma sätt kan du också extrahera en enda katalog från en tarball med följande syntax:

tar xvf [archive.tar] [sökväg till katalog]
tar -zxvf [archive.tar.gz] [sökväg till katalog]

Till exempel för att extrahera en helhet test1 underkatalog från test.tar arkiv, skulle du behöva ange hela sökvägen till katalogen, dvs. test/test1:

tar -xvf test.tar test/test1

Detta kommer att extrahera hela underkatalogen test/test1 i den aktuella terminalkatalogen.

Extrahera en enskild fil eller mapp till en annan katalog

Du kan också extrahera en fil eller katalog från en tarball till en annan katalog. För detta, använd samma syntax som ovan men lägg till -C alternativ följt av destinationskatalogen:

tar -xvf [archive.tar] -C [destinationskatalog] [fil-eller-katalog]
tar -zxvf [archive.tar.gz] -C [destinationskatalog] [fil-eller-katalog]

Låt oss säga att vi vill extrahera en katalog test 2 från test.tar arkiv till Nedladdningar katalog istället för den nuvarande arbetskatalogen. Kommandot, i det här fallet, skulle vara:

tar -xvf test.tar -C ~/Nedladdningar/ test/test2

Ta bort en enskild fil eller katalog från en Tarball

Om du behöver ta bort en enskild fil eller katalog från en TAR- eller TAR.GZ-fil, använd --radera alternativet med kommandot tar:

tar -vf [archive.tar] --radera [fil-eller-katalog]

Du kan dock inte ta bort en fil eller katalog direkt från en komprimerad tarball (TAR.GZ). Vad du behöver göra är att först dekomprimera TAR.GZ-filen, ta bort filen eller katalogen och sedan komprimera den igen.

För att dekomprimera filen TAR.GZ, använd följande kommando:

gzip -d [archive.tar.gz]

Om du dekomprimerar den konverteras filen till en TAR. Nu kan du ta bort filen från TAR-arkivet med:

tar -vf [archive.tar] --radera [fil-eller-katalog]

Efter det, komprimera om TAR-filen med gzip:

gzip -f [archive.tar]

Spara tid när du arbetar med arkiv på Linux

Att bara extrahera de nödvändiga filerna från ett arkiv förhindrar inte bara röran utan sparar också tid som annars skulle gå åt till att söka igenom ett stort antal filer.

Ibland kan skapa och extrahera TAR-filer resultera i dubbletter av filer i ditt system. Därför är det en god praxis att identifiera och ta bort dessa dubbletter med jämna mellanrum för att berömma ditt utrymme.