Vous voulez créer un fichier tar loin de l'endroit où les fichiers dont vous avez besoin pour tar résident?
Il existe plusieurs façons de procéder.
S'il doit être créé localement (= sur la même machine):
tar czvf /path/to/destination/newfile.tar.gz ./SOURCEDIR_OR_FILES
Vous pouvez ajouter des fichiers ou des répertoires supplémentaires à tar à la fin de cette commande.
S'il doit être créé à distance (c'est-à-dire que vous souhaitez créer le fichier tar sur un hôte distant à partir de celui contenant les données à tarer):
tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'
La dernière version est très polyvalente. Par exemple, vous pouvez également "dupliquer" un répertoire + sous-répertoires en utilisant la même technique:
Dupliquez un répertoire + sous-répertoires vers un autre répertoire local:
tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )
Dupliquez un répertoire + sous-répertoires vers un autre répertoire distant:
tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '
Déposez le 'v' si vous n'en avez pas besoin pour afficher les fichiers car ils sont tarés (ou non tarés): il ira alors beaucoup plus vite, mais ne dira pas grand-chose sauf en cas d'erreur.
J'utilise ". / ..." pour la source pour forcer tar à le stocker en tant que chemin RELATIF. Dans certains cas, vous souhaiterez ajouter des informations de chemin supplémentaires:
Par exemple, pour tarer les fichiers crontab, y compris celui dans / etc, vous pouvez faire:
cd / ; tar czf all_crons.tgz ./etc/*cron* ./var/spool/cron
J'utilise exprès le chemin relatif: certaines anciennes versions de tar peuvent être dangereuses et extraire des fichiers avec leur chemin GLOBAL d'origine, ce qui signifie que vous pourriez faire: cd /safedir ; tar xvf sometar
et avoir les fichiers avec des noms globaux écraser les fichiers à leur chemin d'origine, qui est à l'extérieur de / safedir et pas en dessous! Très dangereux et toujours possible car il existe de vieux serveurs de production. Mieux vaut être utilisé pour utiliser des chemins relatifs tout le temps, même si vous utilisez un tar plus récent.
cd /opt; tar zcf $HOME/junk.tar.gz junk
.