Cómo extraer un solo archivo de tbz

Cómo extraer un solo archivo de tbz

Tengo el siguiente directorio archivado:

itunes20140618.tbz

Quiero extraer un solo archivo llamado:

itunes20140618/video

¿Cómo haría esto?

Hasta ahora estoy haciendo

$ bzip2 -d /tmp/itunes20140618.tbz 

Pero parece crear un directorio tar para todo. ¿Cómo puedo extraer solo el archivo de video?

Actualmente, si extraigo un archivo mediante tar, tarda aproximadamente 1 minuto y luego se "cuelga" durante otros 20 minutos mientras termina de leer el archivo tar. ¿Alguna idea de cómo mejorar esto?

Respuesta1

tar -xvjf itunes20140618.tbz itunes20140618/video

Eso debería ser suficiente para este caso, pero si necesita más ayuda, haga:

info tar

Para extraer miembros específicos del archivo, proporcione sus nombres exactos de miembros como argumentos, tal como están impresos en --list (-t). Si eliminó por error uno de los archivos que había colocado collection.tar anteriormente en el archivo (por ejemplo, blues), puede extraerlo del archivo sin cambiar la estructura del archivo. Su contenido será idéntico al archivo original bluesque eliminó.

Primero, asegúrese de estar en el practicedirectorio y enumere los archivos en el directorio. Ahora, elimine el archivo bluesy vuelva a enumerar los archivos en el directorio.

Ahora puede extraer el miembro bluesdel archivo `collection.tar' de esta manera:

 $ tar --extract --file=collection.tar blues

Si vuelve a enumerar los archivos en el directorio, verá que el archivo bluesha sido restaurado, con sus permisos originales, tiempos de modificación de datos y propietario. (Estos parámetros serán idénticos a los que tenía el archivo cuando lo colocó originalmente en el archivo; sin embargo, cualquier cambio que haya realizado antes de eliminar el archivo del sistema de archivos _no_ se habrá realizado en el miembro del archivo). El archivo comprimido collection.tares el mismo que era antes de extraerlo blues. Puedes confirmar esto ejecutando tar con --list (-t).

Respuesta2

Un archivo como .zip, .raro .7zconsta de muchos archivos agrupados y comprimidos. Un .tararchivo comprimido consta de muchos archivos agrupados, pero el formato tar no incluye ninguna compresión. Un archivo o .gzes un único archivo comprimido. A , etc. es un archivo comprimido; es un sufijo que ocasionalmente se usa en lugar de , al igual que a veces se usa en lugar de ..bz2.xz.tar.gz.tar.bz2.tbz.tar.bz2.tgz.tar.gz

bzip2 -d /tmp/itunes20140618.tbzdescomprime el archivo. Te queda el archivo tar sin comprimir. bzip2no crea un tar: descomprime lo que se le da y, dado que se le proporciona un tar comprimido, la salida es un tar sin comprimir. Puede descomprimir el archivo resultante con tar -xf /tmp/itunes20140618.tar. Para extraer solo un archivo, eso es tar -xf /tmp/itunes20140618.tar itunes20140618/video.

Las versiones razonablemente recientes de tar en Linux, FreeBSD, MINIX3 y OSX detectan automáticamente archivos comprimidos, por lo que puedes llamar a tar en primer lugar sin preocuparte por la compresión utilizada en el archivo:

tar xf itunes20140618.tbz itunes20140618/video

Las versiones anteriores de tar, así como muchos sistemas actuales como OpenBSD, Solaris y Linux con BusyBox, pueden al menos llamar bzip2de forma oculta incluso si tienes que decírselo explícitamente con la -jopción.

tar -xjf itunes20140618.tbz itunes20140618/video

información relacionada