#!/bin/bash # Проверка наличия аргументов if [ "$#" -ne 3 ]; then echo "Usage: $0 PASSWORD ARCHIVE_FILE DESTINATION_DIR" exit 1 fi # Присваиваем аргументы переменным PASSWORD=$1 ARCHIVE_FILE=$2 DESTINATION_DIR=$3 # Проверка наличия существующего файла архива if [ ! -f "$ARCHIVE_FILE" ]; then echo "Error: Archive file '$ARCHIVE_FILE' not found!" exit 2 fi # Создание директории назначения, если она не существует if [ ! -d "$DESTINATION_DIR" ]; then mkdir -p "$DESTINATION_DIR" fi # Расшифровываем и извлекаем архив openssl enc -aes-256-cbc -d -in "$ARCHIVE_FILE" -out - -pass pass:"$PASSWORD" -pbkdf2 -iter 100000 | tar -xzf - -C "$DESTINATION_DIR" # Проверка успешности выполнения команд if [ $? -eq 0 ]; then echo "Archive successfully decrypted and extracted to '$DESTINATION_DIR'" else echo "Error during decryption or extraction" exit 3 fi