tar: rimuove i principali componenti della directory durante l'estrazione


104

Come è possibile estrarre solo la directory di destinazione e non l'albero di directory completo?

comprimere

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

estratto

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

Questo produrrà:

/tmp/var/www/site

Come è possibile evitare la creazione dell'intero albero dir durante l'estrazione del file?

Quello che voglio estrarre a:

/tmp/site

Risposte:


34

Perché non usare l' -Copzione durante la creazione:

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

1
TMTOWTDI. Funzionerebbe anche quello, usando la stessa -Copzione;)
MikeyB l'

12
Vuole eliminare il percorso da alcuni componenti principali, non modificare la directory di output. Vedi sotto per la risposta corretta.
aymericbeaumet,

4
Non possiamo usarlo quando qualcun altro prepara l'archivio.

Perché `` _t = prefisso - $ (data +% Y% m% d); tar -cjf ".backups / $ _ t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" -- File...; tar -df ".backups / $ _ t.tar.bz2" --strip-components = 1 `` `
AnrDaemon

258

Vuoi usare l' --strip-components=NUMBERopzione di tar:

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

Il tuo comando sarebbe:

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

19
Questa risposta è migliore perché non devi pensarci prima della creazione del tar. Puoi usarlo con un file tar già creato. Grazie @MikeyB!
Fabien Quatravaux,

4
Sono lieto di segnalare che funziona sia in tar GNU che in tar BSD.
Nathan Osman,

4
e perché potresti non essere il creatore di catrame ... (o se lo stai facendo con un altro strumento e quello strumento fa cose stupide ...)
xenoterracide

potresti comunque perdere il --strip-componentsflag se stai utilizzando l'implementazione di busybox integrata tar.
sylvainulg,

1
@FabienQuatravaux Bene, sì --- se hai commesso un errore e creato un archivio che include le directory principali che non vuoi vedere durante l'estrazione. Ma è più chiaro costruire l'archivio senza le directory indesiderate principali in primo luogo.
Calaf,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.