
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 tar
y otras utilidades, pero ya no puedo encontrarlo.
Actualizar:
¿Cómo puedo configurar algo como atool
no usarlo unzip
para extraer archivos zip (que aparentemente no pueden manejar archivos de más de 4 GB) y usarlo gunzip
en 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 als
comando que proporciona, que enumera el contenido de cualquier formato de archivo compatible.
El comando principal atool
utiliza 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 ~/.atoolrc
y 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 ar
archivos 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/local
o en su directorio de inicio, necesita editar archivos /usr
o recompilarlos). /usr/share/avfs/extfs/ext-uzip
es el script para manejar .zip
archivos, 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.ini
y cambiar la línea ext-uzip
a u7z .zip
.
Respuesta4
archivolibraryes unBiblioteca de compresión y archivo multiformatoque apoyamuchos formatos de archivo y compresión.
bsdtar
y bsdcpio
son interfaces de línea de comandos para eso con una API tar
tipo 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.tar
con un comando tradicional tar
.