Estoy usando este comando en un5GBarchivo
tar -zxvf archive.tar.gz /folder/in/archive
¿Es esta la forma correcta de hacer esto? Parece que está tardando una eternidad sin salida de línea de comando...
Respuesta1
tar
almacena rutas relativaspor 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 extraerlo /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 omitir la barra diagonal inicial. Si desea simular rutas absolutas, hágalo cd /
primero y asegúrese 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 buenas razones muy obvias para tar
convertir rutas en relativas. Una es la capacidad de restaurar un archivo en lugares distintos a su fuente original. La otra es la seguridad. Podrías extraer un archivo, esperar que sus archivos aparezcan en tu directorio de trabajo actual y, en su lugar, sobrescribir los archivos del sistema (o tu propio trabajo) en otro lugar por error.
Nota: si utiliza la -P
opción,tar
voluntadarchivar rutas absolutas. Por lo tanto, siempre vale la pena verificar el contenido de archivos grandes antes de extraerlos.