¿Desea crear un archivo tar lejos del lugar donde residen los archivos que necesita para tar?
Hay muchas maneras de hacer esto.
Si se va a crear localmente (= en la misma máquina):
tar czvf /path/to/destination/newfile.tar.gz ./SOURCEDIR_OR_FILES
Puede agregar archivos o directorios adicionales a tar al final de ese comando.
Si se va a crear de forma remota (es decir, si desea crear el archivo tar en un host remoto desde el que contiene los datos que se van a tarar):
tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'
La versión posterior es muy versátil. Por ejemplo, también puede "duplicar" un directorio + subdirectorios utilizando la misma técnica:
Duplicar un directorio + subdirigir a otro directorio local:
tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )
Duplicar un directorio + subdividir a otro directorio remoto:
tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '
Suelte la 'v' si no la necesita para mostrar los archivos, ya que están tar-ed (o sin restricciones): luego irá mucho más rápido, pero no dirá mucho a menos que haya un error.
Uso ". / ..." para que la fuente fuerce el alquitrán a almacenarlo como una ruta RELATIVA. En algunos casos, querrá agregar información de ruta adicional:
Por ejemplo, para tar los archivos crontab, incluido el de / etc, puede hacer:
cd / ; tar czf all_crons.tgz ./etc/*cron* ./var/spool/cron
Utilizo a propósito la ruta relativa: algunas versiones antiguas de tar pueden ser peligrosas y extraer archivos con su ruta GLOBAL original, lo que significa que podría hacer: cd /safedir ; tar xvf sometar
y hacer que los archivos con nombres globales sobrescriban los archivos en su ruta original, que está FUERA de / safedir y no debajo! Muy peligroso, y aún posible, ya que existen servidores de producción antiguos. Es mejor usarlo para usar rutas relativas todo el tiempo, incluso si usa un alquitrán más reciente.
cd /opt; tar zcf $HOME/junk.tar.gz junk
.