Мой жесткий диск в беспорядке, поэтому я решил сделать уборку. Как часть этого, я хочу объединить все папки, содержащие музыку, в одну. То, что я хочу сделать, это найти любые * .mp3 и * .aac на моем диске и получить имена папок. Затем я хочу удалить все повторяющиеся имена папок и на последнем шаге получить только корневые каталоги. Мне трудно объяснить это точно, так что вот пример дерева:
root1
|--folder1
|--sub1
|--file1.mp3
|--file2.aac
|--sub2
|--sub3
|--file3.mp3
|--file4.aac
|--folder2
| ...contains photos and documents (no mp3/aac)...
root2
|--folder3
|--file4.mp3
|--file5.aac
|--folder4
|--file6.mp3
Для этого примера мой желаемый вывод - root1/folder1 root2/folder3 root2/folder4
.
Поскольку у меня есть только ограниченные знания о bash и UNIX-инструментах, я понятия не имею, как это сделать. Есть ли способ добиться этого? Я в порядке, если функции вашего решения find
, но было бы гораздо лучше, если вместо этого использовать locate
.