tar
almacena rutas relativas por defecto . GNU tar incluso lo dice si intentas almacenar una ruta absoluta:
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
Si necesita extraer una carpeta en particular, eche un vistazo a lo que hay en el archivo tar:
tar -tvf foo.tar
Y tenga en cuenta el nombre de archivo exacto. En el caso de mi foo.tar
archivo, podría extraer /home/foo/bar
diciendo:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Entonces, no, la forma en que publicaste no es (necesariamente) la forma correcta de hacerlo. Tienes que dejar de lado la barra diagonal. Si quieres simular rutas absolutas, hazlo cd /
primero y asegúrate de ser el superusuario. Además, esto hace lo mismo:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Hay razones muy obvias y buenas por las que tar
convierte rutas en rutas relativas. Una es la capacidad de restaurar un archivo en lugares distintos de su fuente original. El otro es la seguridad. Puede extraer un archivo, esperar que sus archivos aparezcan en su directorio de trabajo actual y, en su lugar, sobrescribir los archivos del sistema (o su propio trabajo) en otro lugar por error.
Nota: si se utiliza la -P
opción, tar
se archivar rutas absolutas. Por lo tanto, siempre vale la pena verificar el contenido de los archivos grandes antes de extraerlos.