Vuoi creare un file tar lontano dal luogo in cui devono risiedere i file?
Ci sono molti modi per farlo.
Se deve essere creato localmente (= sulla stessa macchina):
tar czvf /path/to/destination/newfile.tar.gz ./SOURCEDIR_OR_FILES
È possibile aggiungere ulteriori file o directory da tar alla fine di quel comando.
Se deve essere creato in remoto (ad esempio, si desidera creare il file tar su un host remoto da quello contenente i dati da tarare):
tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'
La versione successiva è molto versatile. Ad esempio puoi anche "duplicare" una directory + sottodirati usando la stessa tecnica:
Duplica una directory + sottocartelle in un'altra directory locale:
tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )
Duplica una directory + subdir in un'altra directory remota:
tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '
Rilascia la 'v' se non ti serve per visualizzare i file perché sono tarati (o non tarati): andrà molto più veloce, ma non dirà molto a meno che non ci sia un errore.
Uso ". / ..." per la sorgente per forzare tar per memorizzarlo come percorso RELATIVO. In alcuni casi ti consigliamo di aggiungere ulteriori informazioni sul percorso:
Ad esempio per tarare i file crontab, incluso quello in / etc, puoi fare:
cd / ; tar czf all_crons.tgz ./etc/*cron* ./var/spool/cron
Uso apposta il percorso relativo: alcune VECCHIE versioni di tar possono essere pericolose ed estrarre i file con il loro percorso GLOBALE originale, il che significa che potresti farlo: cd /safedir ; tar xvf sometar
e avere i file con nomi globali sovrascrivere i file nel loro percorso originale, che è ESTERNO di / safedir e non sotto! Molto pericoloso e ancora possibile in quanto vi sono vecchi server di produzione là fuori. Meglio essere usato per usare sempre percorsi relativi, anche se usi un tar più recente.
cd /opt; tar zcf $HOME/junk.tar.gz junk
.