Cómo crear un archivo tar en una carpeta específica desde una carpeta diferente

Cómo crear un archivo tar en una carpeta específica desde una carpeta diferente

Hola chicos, soy nuevo en Linux.

Estoy intentando crear un archivo tar desde un directorio diferente y quiero que se me coloque en un directorio específico.

He probado este cmd

tar -cvf dailybackup.tar /root/filesfromlocalmachine/ -C /root/backup/

Hay una carpeta con el nombre pf backup y quiero que se cree el tar allí. Pero cada vez que ejecuto esto, el tar se crea en la carpeta donde estoy ejecutando el comando. ¿Hay alguna manera de crear un archivo tar desde una carpeta diferente?

Respuesta1

Sí, coloque el directorio delante del "tar".

cd /
tar -cvf /where/to/put/it/dailybackup.tar root/backup/

y hará una copia de seguridad root/backup.

Sugeriría hacer siempre copias de seguridad con una ruta relativa (como usé en mi respuesta); de lo contrario, podría sobrescribir el destino cuando quisiera restaurarlo en otro lugar y luego compararlo con la versión de la copia de seguridad.

Respuesta2

Cada vez que tarencuentra una -Copción, el directorio de trabajo actual cambia y todas las opciones siguientes se ven afectadas. Hace que esta opción sea sensible al orden.

./a:      ./b:
file001   file002

por ejemplo, el uso de múltiples -Copciones hace que la segunda sea -Crelativa a la primera.

$ tar -vcf archive.tar.gz -C ./a . -C ../b .  
./  
./file001  
./  
./file002

Porque -Cno ajusta la entrada [FILE...],expansión del camino(... globbing) no funcionará. Sin embargo, en los casos en que se requiera globbing, --transformse puede utilizar.

$ tar -cvf archive.tar.gz \
    --show-transformed-names --transform='s:^./.*/::' ./[ab]/file00?
file001
file002

Además, '--strip-components=<n>'se puede utilizar para pelar los componentes principales durante la extracción.

$ tar -vxf archive.tar.gz \
    --show-transformed-names --strip-components=2  
file001  
file002

información relacionada