
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 tar
encuentra una -C
opció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 -C
opciones hace que la segunda sea -C
relativa a la primera.
$ tar -vcf archive.tar.gz -C ./a . -C ../b .
./
./file001
./
./file002
Porque -C
no ajusta la entrada [FILE...],expansión del camino(... globbing) no funcionará. Sin embargo, en los casos en que se requiera globbing, --transform
se 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