1

Мне нужно переместить все файлы видео в дереве файлов в их родительские папки, например:

происхождение:

A--sub1--file1
         file2
   sub2--file3
       --file4
   sub3--file5
B--sub1--file1
         file2
   sub2--file3
       --file4
   sub3--file5
   ...

Что мне нужно:

A--file1
   file2
   file3
   file4
   file5
B--file1
   file2
   file3
   file4
   file5
   ...

Я пытаюсь использовать сценарий оболочки, и я собираюсь сделать следующее:

for file in `find -name *avi`; do something ; done

Я хотел бы использовать имя файла, которое я получаю из find -name *avi чтобы получить путь к его родительской папке, который является частью перед вторым последним '/'. Но я не знаю, как добиться этого с помощью сценария оболочки, может помочь регулярное выражение, но я понятия не имею, как, какая-нибудь помощь?

1 ответ1

1
find -name "*.avi" |
while read -r file; do
    mv -v "$file" "${file%/*/*}"
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .