Сценарий небольшой оболочки может прийти на помощь.
#! /bin/bash
for archive in "$@"; do (
archive_dir="$(cd $(dirname "$archive"); pwd -P)"
archive_name="$(basename "$archive")"
# make a directory by appending `.d` to the archive file name
name="${archive_name}.d"
mkdir -p "$name"
cd "$name"
# extract contents with full path,
# replace 'x' with 'e' to extract into $name directory
7z x "${archive_dir}/${archive_name}"
); done
Вставьте вышеуказанное в файл extract.sh (в каталог, где вы хотите извлечь файлы), а затем сделайте его исполняемым: [ ! d1]
chmod +x ./extract.sh
Сценарий создает каталог для каждого архива, указанный в командной строке, добавляя .d к его имени файла (например, для архива stuff.zip он создаст каталог stuff.zip.d) и а затем извлекает из него файлы из архива.
Вы можете вызвать его в таком терминале (используйте групповые символы для извлечения нескольких архивов за один раз):
./extract.sh stuff.zip stuff2.rar
Отказ: непроверенный , поэтому попробуйте его с помощью одного или двух архивов образцов, прежде чем делать большой пробег.