Meine Festplatte ist in einem Durcheinander, also habe ich beschlossen, eine Bereinigung durchzuführen. Als Teil davon möchte ich alle Ordner, die Musik enthalten, in einem zusammenführen. Was ich tun möchte, ist, auf meinem Laufwerk nach * .mp3 und * .aac zu suchen und den Namen der Ordner abzurufen. Dann möchte ich alle doppelten Ordnernamen entfernen und in einem letzten Schritt nur die Stammverzeichnisse greifen. Es fällt mir schwer, das genau zu erklären. Hier ist ein Bild eines Beispielbaums:
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
Für dieses Beispiel ist meine gewünschte Ausgabe root1/folder1 root2/folder3 root2/folder4
.
Da ich nur begrenzte Kenntnisse über Bash- und UNIX-Tools habe, habe ich keine Ahnung, wie das geht. Gibt es einen Weg, dies zu erreichen? Ich bin in Ordnung, wenn Ihre Lösung Funktionen find
, aber es wäre viel besser, wenn locate
stattdessen verwendet wird.