Переименуйте файлы avi во вложенных папках в самое верхнее имя папки и переместите их туда

У меня есть много файлов фильмов, сохраненных в папках примерно по следующей схеме.

Самая верхняя папка: "Матрица (1999)", затем еще одна папка "Матрица фильма", а затем и сам фильм: "matrix1999.avi"

Мне нужна небольшая программа, которая может найти в моей основной папке фильмов "Фильмы" описанную выше ситуацию, а затем отсортировать ВСЕ найденные папки фильмов следующим образом:

Самая верхняя папка: "Матрица (1999)" с фильмом внутри "" Матрица (1999).avi" ... предыдущая средняя папка" Матрица фильма "теперь исчезла.

В случае если последняя вложенная папка содержит более одного avi, то будет "Матрица (1999)-part1.avi", "Матрица (1999)-part2.avi" и т. Д.).

если имеется несколько "средних" папок, которые необходимо обнаружить, и снова файлы *.avi перемещаются в самую верхнюю папку, удаляя "средние".

1 ответ

У меня была похожая проблема, которая была решена ниже одного лайнера:

find . -printf '%P\0' | pax -0rws ':/:_:g' ./output_folder/

Я также искал HTML-файлы, которые больше, чем порог:

find . -name '*.html' -size +1024c -printf '%P\0' | pax -0rws ':/:_:g' ./output_folder/

Надеюсь, поможет.

Другие вопросы по тегам