@Timuridze

Как с помощью Bash распаковать несколько тысяч архивов *.rar каждый архив в отдельную папку?

Имеется множество архивов в папке, в каждом архиве несколько файлов, часть файлов в архивах имеет одинаковые названия. Соответственно нужно распаковать эти тысячи архивов, каждый архив в отдельную папку максимально быстро.
Пока нашел как распаковать архив скопом, но тогда одинаковые файлы перезаписываются и остается только последний
find . -name '*.rar' -print0 | xargs -n 1 -0 unrar x
  • Вопрос задан
  • 1021 просмотр
Решения вопроса 1
@xibir
пишем скрипт unpack

#!/bin/bash
find "$1" -name \*.rar -print0 | while read -d $'\0' f; do
   d=`basename "$f"`
   d="$2/${d/%.rar/}"
   mkdir -p "$d"
   cd "$d" && unrar x "$f"
done


запускаем
unpack "/путь/к rar файлам" "/путь/куда распаковать"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Voland69
Сходу вижу два варианта:
  • добавить в пайплайн mkdir и mv;
  • man unrar на предмет задания директории куда распаковывать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы