#!/bin/bash
# Проверка аргументов
if [ $# -ne 1 ]; then
echo "Использование: $0 <package.deb>"
exit 1
fi
DEB_FILE="$1"
# Проверка существования файла
if [ ! -f "$DEB_FILE" ]; then
echo "Ошибка: файл '$DEB_FILE' не найден."
exit 1
fi
# Имя пакета без пути и расширения
BASENAME=$(basename "$DEB_FILE" .deb)
# Создаём директорию
mkdir -p "$BASENAME"
# Извлекаем .deb в эту директорию
dpkg-deb --extract "$DEB_FILE" "$BASENAME"
# Проверяем успешность
if [ $? -eq 0 ]; then
echo "Пакет '$DEB_FILE' успешно разархивирован в директорию '$BASENAME/'"
else
echo "Ошибка при разархивировании."
exit 1
fi
---
Как использовать:
1. Сохрани скрипт как extract_deb.sh
2. Сделай исполняемым:
chmod +x extract_deb.sh
3. Запусти:
./extract_deb.sh package.deb
---
Зависимости
Требуется утилита:
dpkg-deb
Обычно доступна в системах на базе Debian/Ubuntu.
Если нет — установи:
sudo apt install dpkg
---
Пример:
./extract_deb.sh vim_8.2.1234-1_amd64.deb
→ Создастся папка vim_8.2.1234-1_amd64 с содержимым пакета (файлы, как в /usr, /etc и т.д.)
---
Дополнительно: извлечь только control-информацию
Если захочешь — можно расширить скрипт, чтобы извлекать и control.tar.xz:
dpkg-deb --control "$DEB_FILE" "$BASENAME/DEBIAN"
Добавь эту строку после --extract, если нужно.
[file-name 000276_2025-10-29_07-22-51.txt]