¿Cómo extraigo un archivo tar omitiendo algunos de los directorios principales?

¿Cómo extraigo un archivo tar omitiendo algunos de los directorios principales?

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/forumuna carpeta. ¿Qué debo hacer para extraerlo a /home/username/forumla 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 2in --strip-components.

Si no está seguro de lo que hay dentro de un tarball, utilice la topción:

tar tjf forum.tar.bz2

Canalícelo lesspara 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 comando
  • c- crea un tarball
  • t- enumera el contenido de un tarball
  • j- hacer tar descomprimir bolas comprimidas bzip2. Esto es redundante con la .bz2extensió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" .

información relacionada