TGViewer
BashMaster BashMaster @bash_help · 8.84K subscribers
Post #1183 2.5K
⚙️ Одна функция вместо десяти команд

✔️Каждый раз, когда нужно распаковать архив, начинается одно и то же. Это tar.gz или tar.bz2? Какие там флаги у unrar? А 7z вообще как запускается? Приходится лезть в документацию или историю команд. Самописная функция extract() решает именно эту проблему.

▶️Скопируйте функцию в ~/.bashrc или ~/.zshrc:
extract() {
if [ -f "$1" ]; then
case "$1" in
*.tar.bz2) tar xjf "$1" ;;
*.tar.gz) tar xzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xf "$1" ;;
*.tbz2) tar xjf "$1" ;;
*.tgz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "unknown archive" ;;
esac
fi
}

▶️Потом применяете изменения:
source ~/.bashrc

▶️Функция определяет тип архива по расширению файла и сама выбирает нужную команду. Вы просто пишете extract имя_файла и получаете распакованное содержимое. Без флагов, без гугления, без ошибок из-за опечатки в параметрах.

▶️Поддерживаемые форматы: tar.gz, tar.bz2, bz2, rar, gz, tar, tbz2, tgz, zip, 7z.

▶️Один синтаксис для любого формата. Если файл не распознан, функция скажет unknown archive вместо того, чтобы молча упасть.

➡️ Что можно добавить:
▶️Базовая версия уже полезна, но её можно немного доработать. Например, добавить проверку, что нужная утилита вообще установлена, или выводить имя команды перед запуском. Вот расширенный вариант:
extract() {
if [ ! -f "$1" ]; then
echo "'$1' не найден"
return 1
fi

case "$1" in
*.tar.bz2) tar xjf "$1" ;;
*.tar.gz) tar xzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xf "$1" ;;
*.tbz2) tar xjf "$1" ;;
*.tgz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "Формат не поддерживается: '$1'" ; return 1 ;;
esac
}


🖼️ Ссылка на источник

🔨 bash_help
  • 👍 23
  • 🔥 2
More from @bash_help
  1. Oct 18, 2026АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного об…
  2. Oct 15, 2026⚙️ IxeRam ✔️Высокопроизводительный терминал-ориентированный сканер памяти и отладчик для L…
  3. Oct 15, 2026👩‍💻 Всем программистам посвящается! Вот 14 авторских обучающих IT каналов по самым востр…
  4. Oct 14, 2026⚙️ bash-agent ✔️Минималистичная среда выполнения для AI-агента, которая написана на чистом…
  5. Oct 11, 2026⚙️ PortPal ✔️Нативный десктопный монитор портов, который помогает быстро понять, какие про…
  6. Oct 11, 2026👀Ты давно мечтал обучиться этичному хакингу? ⚠️Мы нашли для тебя ЛУЧШЕЕ ПРЕДЛОЖЕНИЕ на ры…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →