¿Cómo uso el comando tar de Unix con una ruta de archivo implícita?

9

Estoy usando el tar -xvfcomando y está tomando la ruta explícita. Sin embargo, el camino está lleno.
Ejemplo:

tar -xvf 13.2.tar

Está tomando el camino de la /mntcarpeta. La /carpeta está llena.

¿Cómo puedo tar el archivo con la ruta implícita?

Anthon
fuente
Debe explicar claramente qué está sucediendo exactamente, ya que su forma actual de hacer la pregunta hace que incluso la bola de cristal más sofisticada parezca un poco confusa.

Respuestas:

2

Por lo general, tarnecesita la opción --absolute-nameso --absolute-pathspara retener la '/'parte raíz al crear un archivo. Incluso si lo fuerza de esa manera, el extracto también omite el inicio '/'.


Sin embargo, si tiene un archivo con el encabezado '/'y su tar no lo omite durante la extracción, la respuesta de NoahD debería funcionar de esta forma,

pax -r -s ',/mnt,/new/path,' -v -f 13.2.tar

Creo paxque no maneja archivos comprimidos, por lo que necesitaría canalizarlos después de descomprimirlos pax.
Eso sería así (suponiendo que tenga un archivo comprimido)

gunzip -c 13.2.tar.gz | pax -r -s ',/mnt,/new/path,' -v

Encontré esta página wiki en Google hace un momento.

nik
fuente
2

La diferencia entre usar canónico (también conocido como explícito) y relativo (lo que probablemente estés llamando implícito) es si usas /a al principio.

Por ejemplo, si el directorio de trabajo actual es /usr/home/bob, los siguientes comandos tienen exactamente el mismo efecto

tar -xvf foo.tar *
tar -xvf ./foo.tar *
tar -xvf ./foo.tar ./*
tar -xvf /usr/home/bob/foo.tar *
tar -xvf /usr/home/bob/foo.tar ./*
tar -xvf /usr/home/bob/foo.tar / usr / home / bob / *

Pero sospecho que esta no es realmente tu pregunta. Parece que necesita determinar el uso del disco y ubicar un directorio que no está lleno. Esto se puede hacer con el dfcomando.

df -k # space on disk in kilobytes
df -m # as above, but in meg
df -g # as above, but in gig

Y puede usarlo mountpara mostrarle qué sistemas de archivos están montados en qué dispositivos.

Anthon
fuente
0

Para crear un archivo tar con una ruta relativa,

cd /parent/of/dir/to/tar
tar cvf subdir.tar subdir

Para descomprimir un tar en un directorio específico que no sea el directorio de trabajo actual, use el modificador -C (mayúscula C).

Si desea descomprimir un archivo con rutas de acceso absolutas en un punto que no sea root, es posible que deba meterse con él chroot(1).

robar
fuente
0

Creo que Pax hará el truco

pax -r -s, / mnt, / gooddir, -f 13.2.tar

Debería permitirle sustituir en un nuevo directorio raíz.

Anthon
fuente