GNU/Linux >> Tutoriales Linux >  >> Linux

Una función Bash para extraer archivos de archivos de varios tipos

Hay tantas aplicaciones disponibles para extraer varios tipos de archivos de almacenamiento. Le resultará difícil recordar todas las opciones y parámetros de cada herramienta de archivo. ¡No hay problema! Hoy, encontré una función Bash simple para extraer archivos de varios tipos en Linux.

Esta función Bash puede extraer los formatos de archivo más utilizados, como .tar.bz2 , .tar.bz , .bz2 , .rar , .zip y .7z etc. ¡No necesita usar la aplicación de archivo real para extraer un archivo de almacenamiento! Simplemente agregue esta función a su archivo ~/.bashrc y llámela para extraer los archivos de almacenamiento. Automáticamente encontrará y utilizará la herramienta de archivo adecuada para extraer los archivos. ¡No es necesario memorizar las banderas y las opciones!

Una función Bash para extraer archivos

Abre tu ~/.bashrc archivo en un editor de texto de su elección:

$ nano ~/.bashrc

Agrega el siguiente fragmento al final:

# Bash Function To Extract File Archives Of Various Types
extract () {
     if [ -f $1 ] ; then
         case $1 in
             *.tar.bz2)   tar xjf $1     ;;
             *.tar.gz)    tar xzf $1     ;;
             *.bz2)       bunzip2 $1     ;;
             *.rar)       rar x $1       ;;
             *.gz)        gunzip $1      ;;
             *.tar)       tar xf $1      ;;
             *.tbz2)      tar xjf $1     ;;
             *.tgz)       tar xzf $1     ;;
             *.zip)       unzip $1       ;;
             *.Z)         uncompress $1  ;;
             *.7z)        7z x $1    ;;
             *)           echo "'$1' cannot be extracted via extract()" ;;
         esac
     else
         echo "'$1' is not a valid file"
     fi
}

Presiona Ctrl+o y presione ENTER para guardar el archivo y luego presione Ctrl+ x para salir del archivo. Ejecute el siguiente comando para aplicar los cambios:

$ source ~/.bashrc

De ahora en adelante, simplemente puede llamar a esta función para extraer varios tipos de archivos de almacenamiento.

Por ejemplo, voy a extraer un .7z tipo de archivo de almacenamiento usando el comando:

$ extract archive.7z 

Salida de muestra:

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_IN,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (206A7),ASM)

Scanning the drive for archives:
1 file, 16013693 bytes (16 MiB)

Extracting archive: archive.7z
--
Path = archive.7z
Type = 7z
Physical Size = 16013693
Headers Size = 1204
Method = LZMA:23
Solid = +
Blocks = 1

Everything is Ok                                                               

Folders: 21
Files: 37
Size:       16625007
Compressed: 16013693

Del mismo modo, para extraer .zip escriba archivos, el comando sería:

$ extract archive.zip 

Tenga en cuenta que debe haber instalado el administrador de archivos adecuado antes de utilizar esta función. Si no hay herramientas de archivo compatibles instaladas en su sistema, recibirá un mensaje de error como el siguiente:

$ extract archive.zip 
bash: /usr/bin/unzip: No such file or directory

Se desconoce el autor original de este guión. Este script se menciona en varios lugares de Internet. Si alguien sabe quién escribió esto, por favor hágamelo saber en la sección de comentarios a continuación. Agregaré los detalles del autor.

¿Está utilizando otras funciones geniales de Bash? Compártelos a través de la sección de comentarios. Podría ser útil para mí y también para todos los lectores.

Lectura relacionada:

  • Renombrar archivos sin escribir el nombre completo dos veces en Linux
  • Consejos de Bash:cómo cp o mv y cd en un solo comando
  • [Consejos de Bash] Cómo usar cd y ls en un solo comando
  • Cómo archivar archivos y directorios en Linux [Parte 1]

Linux
  1. ¿Cómo crear, extraer o abrir un archivo RAR en Linux?

  2. Ejemplos de Linux cpio:cómo crear y extraer archivos cpio (y archivos tar)

  3. Extraiga el nombre base del archivo sin ruta y extensión en bash

  4. Función Bash para encontrar el patrón de coincidencia de archivos más nuevo

  5. ¿Cómo extraer una porción de texto de un archivo binario en linux/bash?

Comando de fuente Bash

Bash:Agregar al archivo

Cómo extraer (descomprimir) el archivo tar.xz

Sustitución de cadena en Bash

35 ejemplos de secuencias de comandos Bash

Extraiga el archivo tar.gz en Linux