Сценарий извлечения архива
Я новичок в работе с оболочкой и могу использовать команду unrar для извлечения одного архива, но я хочу сделать гораздо больше, чем это. Позволь мне объяснить.
Пример:
/ParentFolder/ChildFolder1/xyz.rar
/ParentFolder/ChildFolder2/abc.rar
/ParentFolder/ChildFolder3/rty.rar
/ParentFolder/ChildFolder4/wqe.rar
Каждая дочерняя папка имеет разные имена, каждое из которых содержит архивы с разными именами. Я хотел бы создать скрипт, который будет извлекать архивы внутри каждой дочерней папки, а также переименовывать извлеченный файл с тем же именем, что и папка.
БОНУС: У каждой дочерней папки есть архивы, которые перечислены как
archivename.r01
archivename.r02
archivename.rar
Если возможно удалить всю структуру архива после извлечения, это было бы УДИВИТЕЛЬНО.
Надеюсь, я объяснил это достаточно хорошо. Заранее спасибо!
1 ответ
find /ParentFolder -name "*.rar" -exec unrar '{}' \;
Найти все архивные файлы в структуре каталогов и unrar.
find /ParentFolder ! -name "*.rar" | awk -F \/ '{ split($4,fle,".");system("mv "$0" "$2"/"$3"/"$3"."fle[2]) }'
Предполагая, что в структуре каталогов уже нет других файлов, неархивированные файлы не будут файлами с расширением rar, поэтому ищите все эти файлы без rar как расширение и передайте результаты через awk, используя системную функцию для переименования файла. с мв.
find /ParentFolder -name "*.rar" -exec rm -f '{}' \;
Наконец, выполните команду find для всех файлов rar и выполните команду rm -f, чтобы удалить их.