Estoy archivando una carpeta usando el siguiente comando:
tar jcf "home/username/forum/forum.tar.bz2" /var/www/forum/
Luego estoy extrayendo usando:
tar jxf forum.tar.bz2 ./
Se extrae correctamente, pero crea /home/username/forum/var/www/forum
una carpeta. ¿Qué debo hacer para extraerlo a /home/username/forum
la carpeta?
Gracias
Respuesta1
Además deLa respuesta de dv3500ea, puede utilizar el siguiente comando para extraer archivos comprimidos que var/www/forum/
contengan forum/
:
tar xjf forum.tar.bz2 --strip-components=2
var/
y www/
son dos componentes de ruta, de ahí el 2
in --strip-components
.
Si no está seguro de lo que hay dentro de un tarball, utilice la t
opción:
tar tjf forum.tar.bz2
Canalícelo less
para poder usar las teclas de flecha para desplazarse.
Una nota general sobre las opciones utilizadas:
x
- extrae un tarball, siempre lo coloco como primera opción ya que es más lógico ver qué hace un comandoc
- crea un tarballt
- enumera el contenido de un tarballj
- hacer tar descomprimir bolas comprimidas bzip2. Esto es redundante con la.bz2
extensión, por lo que también puedes eliminar esta opción.f
- esta opción espera un nombre de archivo como argumento, ya sea el archivo tar que se va a extraer (tar xf file.tar.bz2
) o crear (tar cf file.tar.bz2
)
Respuesta2
Al crear el archivo, utilice -C /var/www/
para cambiar el directorio actual a /var/www mientras crea el archivo.
tar jcf home/username/forum/forum.tar.bz2 -C /var/www/ forum
Esto hará que la carpeta 'foro' esté en el nivel superior del archivo y, por lo tanto, se extraerá directamente a la carpeta actual cuando ejecute:
tar jxf forum.tar.bz2 ./
Respuesta3
La solución rápida (y posiblemente incorrecta) sería cambiar su comando para cambiar de directorio antes de tarear. ES DECIR:
cd /var/www/forum; tar jcf "home/username/forum/forum.tar.bz2" .