Мій harddrive в безладді, тому я вирішив зробити прибирання. В рамках цього я хочу об'єднати всі папки, що містять музику, в одну. Що я хочу зробити, це шукати будь-які * .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
він використовується замість цього.