#!/bin/bash # Функция для распаковки архивов unpack() { if [ $# -eq 0 ]; then echo -e "\033[1;31mОшибка:\033[0m Укажите имя архива" echo "Использование: unpack <архив>" return 1 fi if [ ! -f "$1" ]; then echo -e "\033[1;31mОшибка:\033[0m Файл '$1' не существует" return 1 fi case "$1" in *.tar.bz2|*.tbz2) tar xjf "$1" ;; *.tar.gz|*.tgz) tar xzf "$1" ;; *.tar.xz) tar xf "$1" ;; *.tar) tar xf "$1" ;; *.bz2) bunzip2 "$1" ;; *.rar) unrar x "$1" ;; *.gz) gunzip "$1" ;; *.zip) unzip "$1" ;; *.Z) uncompress "$1" ;; *.7z) 7z x "$1" ;; *) echo -e "\033[1;31mОшибка:\033[0m Неподдерживаемый формат архива: '$1'" echo -e "Поддерживаемые форматы: .tar.bz2, .tar.gz, .tar.xz, .tar, .bz2, .rar, .gz, .zip, .Z, .7z" return 1 ;; esac if [ $? -eq 0 ]; then echo -e "\033[1;32mУспех:\033[0m Архив '$1' распакован" fi } # Если скрипт вызван напрямую (а не через source), выполняем unpack if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then unpack "$@" fi