Respuestas:
La forma más fácil, si no necesita usar particularmente -C
para indicarle tar
que cambie a otro directorio, es simplemente especificar la ruta completa al archivo en la línea de comando. Entonces puede estar en el directorio que prefiera para crear la estructura de directorios que desee dentro del archivo.
Lo siguiente creará el archivo /var/www/file.tar.gz
y lo colocará file1
desde el directorio actual (lo que sea que esté) en él, sin información de ruta en el archivo.
tar czf /var/www/file.tar.gz file1
La ruta (al archivo, a los archivos constituyentes o a ambos), por supuesto, también puede ser relativa. Si file1
está dentro /tmp
, estás dentro /var/spool
y quieres crear el archivo /var/www
, puedes usar algo como:
tar czf ../www/file1.tar.gz /tmp/file1
Hay un millón de variaciones sobre el tema, pero esto debería ayudarlo a comenzar. Agregue la v
bandera si desea ver lo que tar
realmente hace.
$PWD
es, parecía más seguro usar una ruta absoluta en el ejemplo.
file1
en el archivo tar será /tmp
. Esto puede o no ser lo que espera.
Convierto los datos comprimidos en una secuencia (-) y renombro y ubico fácilmente (>) siempre que elijo (También siempre tar la ruta relativa (./) para que sea más fácil tratar cuando se descomprime)
tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
-C
es mucho más idiomático (y más corto).
Creo que debería ser:
tar czf file.tar.gz -C /var/www/ file1
Lo que funciona para mi. Le dice que cambie de directorio y luego elija el archivo.
-C
(que no es extraño, ya que está documentado vagamente). Para más detalles, consulte serverfault.com/q/416002/86283 .