¿Existe una única herramienta de línea de comandos gratuita/de código abierto para extraer todos los formatos de archivo/compresión?

¿Existe una única herramienta de línea de comandos gratuita/de código abierto para extraer todos los formatos de archivo/compresión?

Con unnúmero crecientede los formatos de archivos de archivo/compresión, ¿existe una única herramienta de línea de comandos gratuita/de código abierto para gobernarlos a todos? ¿Quizás algo con un conjunto de banderas consistente/unificado? (tenga en cuenta mi amigoreferencia implícita a tar)

Una vez me encontré con un conjunto de alias destinados a simplificar en gran medida la tarea de comprimir/descomprimir archivos con enlaces tary otras utilidades, pero ya no puedo encontrarlo.

Actualizar: ¿Cómo puedo configurar algo como atoolno usarlo unzippara extraer archivos zip (que aparentemente no pueden manejar archivos de más de 4 GB) y usarlo gunzipen su lugar?

$ aunpack large_file.zip
error:  Zip file too big (greater than 4294959102 bytes)
Archive:  large_file.zip
warning [large_file.zip]:  1491344848 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [large_file.zip]:  start of central directory not found;
  zipfile corrupt.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code

Respuesta1

yo suelouna herramienta. Hace el trabajo. Funciona con muchos formatos, aunque no con todos:

tar, gzip, bzip2, bzip, lzip, lzop, lzma, zip, rar, lha, arj, arc, p7zip, etc.

Estas herramientas de compresión todavía son necesarias, aunque una herramienta es simplemente una interfaz para ellas.

Me gusta especialmente el alscomando que proporciona, que enumera el contenido de cualquier formato de archivo compatible.

El comando principal atoolutiliza sus propios indicadores para extraer archivos (pasando los indicadores apropiados a las herramientas de extracción subyacentes específicas).

Ah, y está en los repositorios de algunas distribuciones (Fedora en mi caso, aunque, según recuerdo, cuando usaba Ubuntu no estaba en sus repositorios y lo instalé desde un tarball).

Actualización sobre repositorios: atool se encuentra en los repositorios de las siguientes distribuciones (solo las versiones actuales marcadas):

  • sombrero
  • Debian (gracias @terdon y, presumiblemente, son derivados como Ubuntu)
  • Ubuntu (qed y, presumiblemente, derivados como Mint)
  • Uso abierto
  • CentOS (y, presumiblemente, RHEL)
  • Arco Linux

Estoy seguro de que hay otras... posiblemente, las distribuciones más modernas.

Respuesta a la pregunta actualizada "¿Cómo puedo configurar algo como una herramienta para no usar descomprimir para extraer archivos zip... y usar gunzip en su lugar?":

Edite el archivo de configuración de atool ~/.atoolrcy agregue la línea:

path_unzip /usr/bin/gunzip

con la ruta correcta a su programa gunzip.

Consulte la página de manual para obtener la lista completa de posibles variables que puede colocar en este archivo de configuración, de las cuales haymucho. Si las opciones de línea de comando necesarias para gunzip son diferentes a las de descomprimir, es posible que deba modificar la fuente de atool (perl).

Respuesta2

Aquí hay una pequeña función de shell que se encarga de varios tipos de archivos.

extract () {
    if [ ! -f "$1" ] ; then
        echo "'$1' does not exist."
        return 1
    fi

    case "$1" in
        *.tar.bz2)   tar xvjf "$1"   ;;
        *.tar.xz)    tar xvJf "$1"   ;;
        *.tar.gz)    tar xvzf "$1"   ;;
        *.bz2)       bunzip2 "$1"    ;;
        *.rar)       rar x "$1"      ;;
        *.gz)        gunzip "$1"     ;;
        *.tar)       tar xvf "$1"    ;;
        *.tbz2)      tar xvjf "$1"   ;;
        *.tgz)       tar xvzf "$1"   ;;
        *.zip)       unzip "$1"      ;;
        *.Z)         uncompress "$1" ;;
        *.xz)        xz -d "$1"      ;;
        *.7z)        7z x "$1"       ;;
        *.a)         ar x "$1"       ;;
        *)           echo "Unable to extract '$1'." ;;
    esac
}

Encontré elVersión originalde esta función en algún lugar en línea y la modifiqué un poco para extraer ararchivos y archivos comprimidos xz tar.

Respuesta3

ElAVFSfilesystem presenta una vista del sistema de archivos donde cada archivo comprimido (p. ej. /path/to/foo.zip) es accesible como un directorio ( ~/.avfs/path/to/foo/zip#para este ejemplo). AVFS proporciona acceso de solo lectura a los formatos de archivos más comunes.

mountavfs
cp -Rp ~/.avfs$PWD/large_file.zip\# extraction_directory

Avfs utiliza ayudas externas que se pueden configurar fácilmente editando archivos /usr(desafortunadamente, a partir de avfs 1.0 no hay forma de usar archivos en /usr/localo en su directorio de inicio, necesita editar archivos /usro recompilarlos). /usr/share/avfs/extfs/ext-uzipes el script para manejar .ziparchivos, cámbielo si no desea usarlo /usr/bin/unzip. Es posible que puedas salirte con la tuya usando 7z: intenta editar /usr/share/avfs/extfs/extfs.iniy cambiar la línea ext-uzipa u7z .zip.

Respuesta4

archivolibraryes unBiblioteca de compresión y archivo multiformatoque apoyamuchos formatos de archivo y compresión.

bsdtary bsdcpioson interfaces de línea de comandos para eso con una API tartipo cpio-like respectivamente.

Por lo tanto, si ya está familiarizado con cualquiera de esas utilidades, le falta una interfaz de línea de comandos que aprender.

Para descomprimir su archivo .iso, .zip, .cab, .7z, .tar.gz.xz.bz2..., es solo:

bsdtar xf file.<ext>

Como lo harías tar xf file.tarcon un comando tradicional tar.

información relacionada