Haemma schrieb:
Danke.
So ähnlich hätte ich es bereits versucht. Aber ich möchte natürlich nicht in jeden Unterordner einsteigen.
Das musst Du ja nicht machen, das macht ja der find-Befehl (mit -execdir
, alternativ, bei wenigen Dateien, kommt auch -okdir in Betracht. ☺
| find ./* -name "*.mp3" -execdir mv {} .. ";"
|
Ja - der Unterschied zw. . und ./* ist Dir bekannt?
In meinem Beispiel befinde ich mich im Ordner mp3 mit den Unterordnern a und b, die jeweils die Unterordner C und D enthalten, die jeweils eine Datei enthalten.
Diese Dateien werden ein Verzeichnis hochgepuscht, und sind dann in den Verzeichnissen a und b.
Danach können die leeren Verzeichnisse C und D gelöscht werden.
Die Files bleiben noch immer im Folder.. Ich möchte automatisch alle Subordner (alle auf einer Ebene) durchlaufen und die Inhalte eine Ebene rauf heben..
Du kannst meine Kommandos in einem leeren Testverzeichnis ausprobieren. Wenn das Kommando das macht, was ich dokumentiert habe, dann erkläre bitte, was stattdessen Dein Ziel ist.
Sollen die song-Dateien alle im Ordner mp3 stehen - das wären 2 Ebenen aufwärts.
Hast Du nur einen Ordnerlevel unter mp3, also sowas wie a, b und darin die mp3-Dateien?
Dann ist rklms Befehl natürlich vorzuziehen, aber seine Warnung in den Wind zu schlagen; rmdir
löscht von sich aus keine nichtleeren Verzeichnisse.
Du könntest auch in den Elternordner von 70er wechseln und mein Kommando anwenden, aber dann würden alle analogen Ordern wie dieser ebenfalls glattgebügelt.