Risposte:
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.
$PWDsia, è sembrato più sicuro usare un percorso assoluto nell'esempio.
file1nell'archivio tar /tmp. Questo può o meno essere quello che ti aspetti.
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
-Cè molto più idiomatico (e più breve).
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.
-C(che non è strano come è vagamente documentato). Per i dettagli, consultare serverfault.com/q/416002/86283 .