Jeg bruker denne kommandoen på en 5GB arkiv
tar -zxvf archive.tar.gz /folder/in/archive
er dette den riktige måten å gjøre dette på? Det ser ut til å ta evig tid uten kommandolinjeproduksjon …
Kommentarer
Svar
tar lagrer relative stier som standard . GNU tar sier det til og med hvis du prøver å lagre en absolutt bane:
tar -cf foo.tar /home/foo tar: Removing leading `/" from member names
Hvis du trenger å trekke ut en bestemt mappe, kan du se på hva som er i tar-filen:
tar -tvf foo.tar
Og legg merke til det eksakte filnavnet. I tilfelle av foo.tar -filen min, kunne jeg trekk ut /home/foo/bar ved å si:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Så nei, måten du postet på, er ikke (nødvendigvis) riktig måte å gjøre det på. Du må utelate den ledende skråstrek. Hvis du vil simulere absolutte baner, gjør du først cd / og sørg for at du er superbruker. Dette gjør også det samme:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Det er veldig åpenbare, gode grunner til at tar konverterer stier til relative. Den ene er muligheten til å gjenopprette et arkiv andre steder enn den opprinnelige kilden. annet er sikkerhet. Du kan trekke ut et arkiv, forvente at filene vises i din nåværende arbeidskatalog, og i stedet overskrive systemfiler (eller ditt eget arbeid) andre steder ved en feiltakelse.
Merk: hvis du bruker -P alternativ, tar vil arkivere absolutte stier. Så det lønner seg alltid å sjekke innholdet i store arkiver før du trekker ut dem.
Kommentarer
-
--strip-components=Nkan være nyttig for noen her. - i mitt tilfelle var det nødvendig å skrive
./foldername/i stedet for , antar jeg at det var fordi da jeg opprettet tjæren, opprettet jeg den medtar -cvf santi.tar ./*og da jeg " oppført " tjæren dette er hva den sadrwxr-xr-x santi/santi 0 2016-04-11 09:42 ./foldername/ - Og om
.gz? - @PeterKrauss endre
-xvftil-xzvf(legge til-zalternativ) og åpenbartfoo.tartilfoo.tar.gzeller hva arkivet ditt heter. Det samme gjelder-j(bz2) og i noen nyere versjoner-J(xz). Ellers fungerer også en rørledning somzcat foo.tar.gz | tar -xvf - …. - Og husk at hvis du er lei av all den detaljerte produksjonen under utvinning, er det bare å hoppe over
vi alle eksemplene. F.eks.tar -tf foo.tarogtar -xf foo.tar ....
tarer medcat /proc/$(pidof tar)/fdinfo/0(tilpasse kommandoen hvis du har mer enn entarprosess som kjører).folder/folder2/vant ' t arbeid.