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

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

Скрипты

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

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

Сегодня я наткнулся на простую функцию 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?

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

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

Спонсор статьи – обзор Logitech MX Keys

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий