43 lines
1.4 KiB
Bash
Executable File
43 lines
1.4 KiB
Bash
Executable File
#!/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
|