#!/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]