Вопрос или проблема
У меня есть директория, полная файлов *.rar, и я хочу, чтобы каждый из них был извлечен в папку с тем же именем, что и его .rar соответствует, но я не хочу использовать циклы for. Как я могу это сделать?
Я на Ubuntu 20.04
Вы можете попробовать использовать unrar на Ubuntu, установив его с помощью sudo apt-get install unrar
.
После этого вам придется создать цикл for, чтобы извлечь файлы отдельно, не объединяя их в одну папку.
Это можно сделать следующим образом: for f in *.rar; do unrar e "$f"; done
.
Если вы хотите зафиксировать любую ошибку, вы всегда можете создать простой скрипт, в котором создается цикл, и внутри цикла вы будете записывать или выводить что-нибудь в определенный файл.
На Ubuntu есть пакет под названием unar
, который делает то, что вам нужно.
Ключ -d оказывает неоценимую помощь
-d, -force-directory
Всегда создавайте содержащую директорию для содержимого распакованного архива. По умолчанию создается директория, если есть более одного файла или папки верхнего уровня.
Так что нечто подобное unar -d *.rar *
должно сработать.
Ответ или решение
Чтобы разархивировать каждый файл в директории в соответствующую ему папку без использования циклов, можно воспользоваться утилитой unar
, которая доступна на Ubuntu. Прежде всего, убедитесь, что у вас установлена эта утилита. Вы можете установить её, выполнив следующую команду в терминале:
sudo apt-get update
sudo apt-get install unar
После установки unar
, разархивирование можно произвести с помощью ключа -d
, который всегда создаёт директорию для содержимого распакованного архива. В вашем случае команда будет выглядеть следующим образом:
unar -d *.rar
Эта команда пройдётся по всем файлам с расширением .rar
в текущей директории и разархивирует их в папки с теми же именами, что и у архивов.
Использование unar
: основные моменты
unar
автоматически создаёт соответствующую папку для каждого архива благодаря опции-d
(или-force-directory
), что позволяет избежать необходимости использования цикл for.- Эта опция удобна, так как даже если в архиве только один файл, для него всё равно будет создана отдельная папка, что обеспечивает структурированность и порядок в директории.
Другие преимущества применения unar
:
- Понятность и простота.
Unar
выделяется своей интуитивно понятной командной строкой и не требует сложных конструкций для выполнения базовых операций. - Эффективность. Извлечение происходит быстро благодаря минимизации вмешательства оператора, что особенно актуально при работе с большим количеством файлов.
Заключение:
Применение unar
с ключом -d
является простым и эффективным решением для задачи разархивирования файлов в Ubuntu, минимизируя необходимость написания сложных скриптов и обеспечивая порядок в структуре данных. Таким образом, вы экономите своё время и снижаете вероятность ошибок при ручном управлении архивами.