Функция Bash для извлечения файловых архивов различных типов

Функция Bash для извлечения файловых архивов различных типов

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

Существует много приложений для извлечения различных типов архивных файлов. 

Вам будет сложно запомнить все опции и параметры каждого инструмента архивирования. 

Сегодня я наткнулся на простую функцию Bash для извлечения файловых архивов различных типов в Linux. 

Эта функция Bash может извлекать наиболее часто используемые форматы архивов, такие как .tar.bz2, .tar.bz, .bz2, .rar, .zip и .7z. 

Вам не нужно использовать фактическое приложение для архивирования, распаковки архива! 

Просто добавьте эту функцию в свой файл ~/bashrc и вызовите ее для извлечения файлов архива. 

Он автоматически найдет и использует соответствующий инструмент архивирования для извлечения файлов. 

Не нужно запоминать флаги и опции. 

Функция Bash для извлечения файловых архивов различных типов 

Откройте ваш файл ~/.bashrc: 

$ nano ~/.bashrc 

Добавьте в конце следующий фрагмент: 

# 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
} 

Нажмите Ctrl + o и нажмите ENTER, чтобы сохранить файл, а затем нажмите Ctrl + x, чтобы выйти из файла. 

Выполните следующую команду, чтобы изменения вступили в силу: 

$ source ~/.bashrc 

С этого момента вы можете просто вызывать эту функцию для извлечения архивов различных типов. 

Например, я собираюсь извлечь файл архива .7z с помощью команды: 

$ extract archive.7z  

Пример вывода: 

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 

Точно так же, чтобы извлечь файлы типа .zip, команда будет следующей: 

$ extract archive.zip  

Обратите внимание, что перед использованием этой функции вы должны установить соответствующий менеджер архивов. 

Если в вашей системе не установлены поддерживаемые инструменты архивирования, вы получите сообщение об ошибке, подобное приведенной ниже: 

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

Этот скрит упоминается во многих местах в Интернете.

Автор – Игорь Павлов.

Вы используете какие-нибудь другие классные функции Bash?

Пожалуйста, поделитесь ими через раздел комментариев.

Это может быть полезно мне и всем читателям.

Источник

Report Page