Vraag tar - Verwijder leidende maponderdelen bij extractie


Hoe kun je alleen de doelmap en niet de volledige hulplijn extraheren?

samenpersen

tar cf /var/www/site.tar /var/www_bak/site

extract

tar xf /var/www/site.tar -C /tmp

Dit zal produceren:

/tmp/var/www/site

Hoe is het mogelijk om te voorkomen dat de hele hoofdboom wordt gemaakt wanneer het bestand wordt uitgepakt?

Wat ik wil laten uitpakken om:

/tmp/site

75
2017-11-11 14:58


oorsprong




antwoorden:


Waarom niet gebruiken -C optie bij het maken van:

$ tar cf /var/www/site.tar -C /var/www_bak/ site

27
2017-11-11 15:12



TMTOWTDI. Dat zou ook werken, hetzelfde gebruiken -C keuze ;) - MikeyB
Hij wil het pad van enkele leidende componenten verwijderen, niet de uitvoermap wijzigen. Zie hieronder voor het juiste antwoord. - aymericbeaumet
We kunnen het niet gebruiken als iemand anders het archief voorbereidt. - jww
Omdat `` `_t = prefix - $ (datum +% Y% m% d); tar -cjf ".backups / $ _ t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" - bestanden ...; tar -df ".backups / $ _ t.tar.bz2" --strip-components = 1 `` ` - AnrDaemon


U wilt de gebruiken --strip-components=NUMBER optie van tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

Uw opdracht zou zijn:

tar xfz /var/www/site.gz --strip-components=2 -C /tmp

206
2017-11-11 15:04



Dit antwoord is beter omdat je er niet over hoeft na te denken voordat de teer wordt gemaakt. U kunt het gebruiken met een reeds gemaakt tar-bestand. Bedankt @MikeyB! - Fabien Quatravaux
Dit werkte als een charme! Bedankt! - Marcello de Sales
Ik ben verheugd om te melden dat dit zowel in GNU-teer als in BSD-teer werkt. - Nathan Osman
en omdat je misschien niet de teerschepper bent ... (of als je het doet met een andere tool en die tool rare dingen doet ...) - xenoterracide
je bent misschien nog steeds vermist --strip-components markeer als u de in busybox ingesloten implementatie van tar. - sylvainulg