Come creare un archivio tar in una directory diversa?


39

Voglio creare un archivio tar in una directory diversa anziché nella directory corrente.

Ho provato questo comando:

tar czf file.tar.gz file1 -C /var/www/

ma crea l'archivio nella directory corrente. Perché?


3
Sembra che tu abbia frainteso il significato di -C(che non è strano come è vagamente documentato). Per i dettagli, consultare serverfault.com/q/416002/86283 .
NN,

Risposte:


48

Il modo semplice, se non è particolarmente necessario utilizzare -Cper indicare tardi passare a un'altra directory, è semplicemente specificare il percorso completo dell'archivio sulla riga di comando. Quindi puoi trovarti in qualsiasi directory tu preferisca per creare la struttura di directory che desideri all'interno dell'archivio.

Quanto segue creerà l'archivio /var/www/file.tar.gze lo inserirà file1dalla directory corrente (qualunque cosa accada), senza informazioni sul percorso in archivio.

tar czf /var/www/file.tar.gz file1

Naturalmente, anche il percorso (verso l'archivio, i file costituenti o entrambi) può essere relativo. Se file1è dentro /tmp, sei dentro /var/spoole vuoi creare l'archivio /var/www, potresti usare qualcosa come:

tar czf ../www/file1.tar.gz /tmp/file1

Ci sono un milione di variazioni sul tema, ma questo dovrebbe iniziare. Aggiungi la vbandiera se vuoi vedere cosa tarfa realmente.


1
È inoltre possibile utilizzare un percorso relativo.
NN,

@NN Assolutamente, ma poiché non abbiamo idea di cosa $PWDsia, è sembrato più sicuro usare un percorso assoluto nell'esempio.
un CVn del

In effetti, ho pensato che fosse logico includerlo per dimostrare che è un'opzione disponibile per risolvere il problema.
NN,

In questo modo, sarà il percorso di file1nell'archivio tar /tmp. Questo può o meno essere quello che ti aspetti.
mouviciel,

8

Trasformo i dati compressi in un flusso (-) e rinomino e localizzo facilmente (>) ovunque io scelga (Inoltre tengo sempre il percorso relativo (./) in modo che sia più facile da gestire quando si decomprime)

tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar

Ciò non aiuta con i singoli file ed -Cè molto più idiomatico (e più breve).
Mahmoud Al-Qudsi,

3

Penso che dovrebbe essere:
tar czf file.tar.gz -C /var/www/ file1

Che funziona per me. Indica di cambiare directory e quindi scegliere il file.


-2

Ha funzionato perfettamente

cd /home; tar -czvf - /var/log/* > varlog.tar.gz
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.