извлечь все RAR-файлы в папке и подпапке в одну папку - PullRequest
0 голосов
/ 19 января 2020

Я нашел этот пост для извлечения RAR-файлов из одной папки в одно и то же имя папки: Извлечение RAR-файлов в одно и то же имя папки

Я хочу извлечь несколько RAR-файлов в подпапках для вложенные папки с тем же именем, например

/folder/sub-folder1/file1.rar --> /folder/sub-folder1/new-folder-same-name-as-sub-folder1/extracted_files.xyz

/folder/sub-folder2/file2.rar --> /folder/sub-folder2/new-folder-same-name-as-sub-folder2/extracted_files.xyz

Как мне изменить:

#!/bin/bash

    for archive in "$(find $loc -name '*.rar')"; do
      destination="${archive%.rar}"
      if [ ! -d "$destination" ] ; then mkdir "$destination"; fi
      unrar e "$archive" "$destination"
    done

, чтобы сделать это, т.е. запустить для всех файлов RAR в папке / * RAR? Или использовать что-то подобное?

Спасибо

1 Ответ

0 голосов
/ 20 января 2020

Вы можете использовать следующий канал из папки $loc, какой путь вы ожидаете в имени файла:

find . -iname *.sh -type f -printf '%P\n' | xargs -i bash -c 'echo "$1" `dirname $1`/`echo "$1" | sed "s/\.sh$//1" | tr "/" "-"`' -- {}

Как видите, $(dirname $archive) вернет вам путь к каталогу и трубу sed "s/\.sh$//1" | tr "/" "-" может вернуть вам filename в ожидаемом для вас формате.

...