Vil du trekke ut en enkelt fil eller mappe fra et TAR- eller TAR.GZ-arkiv? Her er hvordan du kan gjøre det på Linux, ved å bruke tar-kommandoen.
En tarball (TAR eller TAR.GZ) er et sett med filer samlet som et enkelt arkiv som gjør det enkelt å lagre og overføre et stort antall filer lokalt eller over internett. Når du trenger filene, kan du ganske enkelt pakke ut arkivet.
Tenk på et scenario der du bare trenger en enkelt fil fra et stort arkiv. I et slikt tilfelle, i stedet for å pakke ut hele arkivet, kan du kun pakke ut filen du trenger. La oss se hvordan.
Se innholdet i en Tarball
Hvis du bare vil se innholdet i en TAR- eller TAR.GZ-fil, du trenger ikke å trekke den ut. Bruk i stedet følgende kommando for å se hva som er inni:
tar -tvf [archive.tar]
tar -ztvf [archive.tar.gz]
Dette vil skrive ut listen over alle filene og katalogene i arkivet.
Trekk ut en enkelt fil fra Tarball
For å pakke ut en enkelt fil fra TAR eller TAR.GZ, bruk følgende kommandoformat:
tar -xvf [archive.tar] [bane-til-fil]
tar -zxvf [archive.tar.gz] [bane-til-fil]
Husk at du må oppgi hele banen til filen du vil pakke ut. Du kan finne hele banen til filen eller katalogen ved å bruke tar -tvf [archive.tar] kommando.
For å pakke ut en fil test1.txt fra test.tar og test.tar.gz filer, vil kommandoene være:
tar -xvf test.tar test1.txt
tar -zxvf test.tar.gz test1.txt
...hvor:
- -x brukes til å trekke ut filer fra arkivet
- -v brukes til å se fremgang etter hvert som de hentes ut
- -f brukes til å spesifisere tarball-navnet
- -z brukes til å dekomprimere TAR.GZ-filer
Disse kommandoene vil trekke ut den angitte filen i gjeldende terminalkatalog.
Trekk ut en enkelt katalog fra Tarball
På samme måte kan du også trekke ut en enkelt katalog fra en tarball ved å bruke følgende syntaks:
tar xvf [archive.tar] [bane-til-katalog]
tar -zxvf [archive.tar.gz] [bane-til-katalog]
For eksempel for å trekke ut en hel test 1 underkatalog fra test.tar arkiv, må du oppgi hele banen til katalogen, dvs. test/test1:
tar -xvf test.tar test/test1
Dette vil trekke ut hele underkatalogen test/test1 i gjeldende terminalkatalog.
Pakk ut en enkelt fil eller mappe til en annen katalog
Du kan også pakke ut en fil eller katalog fra en tarball til en annen katalog. For dette, bruk samme syntaks som ovenfor, men legg til -C alternativ etterfulgt av målkatalogen:
tar -xvf [archive.tar] -C [destinasjonskatalog] [fil-eller-katalog]
tar -zxvf [archive.tar.gz] -C [destinasjonskatalog] [fil-eller-katalog]
La oss si at vi vil trekke ut en katalog test 2 fra test.tar arkiv til Nedlastinger katalog i stedet for den nåværende arbeidskatalogen. Kommandoen, i dette tilfellet, vil være:
tar -xvf test.tar -C ~/Nedlastinger/ test/test2
Slett en enkelt fil eller katalog fra en Tarball
Hvis du trenger å slette en enkelt fil eller katalog fra en TAR- eller TAR.GZ-fil, bruk --slett alternativet med tar-kommandoen:
tar -vf [archive.tar] --slett [fil-eller-katalog]
Du kan imidlertid ikke slette en fil eller katalog direkte fra en komprimert tarball (TAR.GZ). Det du må gjøre er først å dekomprimere TAR.GZ-filen, slette filen eller katalogen og deretter komprimere den på nytt.
For å dekomprimere TAR.GZ-filen, bruk følgende kommando:
gzip -d [archive.tar.gz]
Dekomprimering vil konvertere filen til en TAR. Nå kan du slette filen fra TAR-arkivet ved å bruke:
tar -vf [archive.tar] --slett [fil-eller-katalog]
Etter det, komprimer TAR-filen på nytt med gzip:
gzip -f [archive.tar]
Spar tid mens du arbeider med arkiver på Linux
Å trekke ut bare de nødvendige filene fra et arkiv forhindrer ikke bare rot, men sparer også tid som ellers ville blitt brukt på å søke gjennom et stort antall filer.
Noen ganger resulterer opprettelse og utpakking av TAR-filer i dupliserte filer i systemet ditt. Derfor er det en god praksis å identifisere og fjerne disse duplikatene med jevne mellomrom for å frigjøre plass.