Guten Abend zusammen,
habe ein kleines Problem und komme auf keine funktionierende Lösung...
In einem Verzeichnis habe ich 11 Unterverzeichnisse (alle auf einer Ebene, also Nebeneinander) in denen ich Dateien habe. Nun möchte ich selbige kopieren und dabei den Dateinamen umbennnen. Nur das kopieren würde ja so klappen:
1 | cp CD01/*.mp3 -v Zusammen/ |
Dabei behält er ja den ursprünglichen Dateinamen. Dies kann er auch, nur dass ich ihm etwas voransetzten möchte.
1 | cp CD01/*.mp3 -v Zusammen/CD01-alter-Name.mp3 |
Also dachte ich, dass es mit 'nem "for-Einzeiler" klappen müsste:
1 2 3 4 5 6 7 8 9 10 11 12 | tobias@tobias-netbook:~/Musik/Hoerbuecher/Philip Pullmann - Der goldene Kompass$ for t in CD01/*.mp3 ; do cp $t Zusammen/CD-01$t; done cp: das angegebene Ziel »Karaffe.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Ankunft.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Wein.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Norden.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Staub.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Wissenschaftler.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Asriel.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Rektors.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Jordan.mp3“ ist kein Verzeichnis cp: das angegebene Ziel »Asriel.mp3“ ist kein Verzeichnis tobias@tobias-netbook:~/Musik/Hoerbuecher/Philip Pullmann - Der goldene Kompass$ |
Leider habe ich da einen Fehler. Tausche ich cp mit echo um zu sehen ob wenigsten die Variable klappt, scheint es halbwegs zu klappen:
1 2 3 4 5 6 7 8 9 10 11 | tobias@tobias-netbook:~/Musik/Hoerbuecher/Philip Pullmann - Der goldene Kompass$ for t in CD01/*.mp3 ; do echo $t Zusammen/CD-01$t; done CD01/01-Die Karaffe.mp3 Zusammen/CD-01CD01/01-Die Karaffe.mp3 CD01/02-Lord Asriels Ankunft.mp3 Zusammen/CD-01CD01/02-Lord Asriels Ankunft.mp3 CD01/03-Der verschüttete Wein.mp3 Zusammen/CD-01CD01/03-Der verschüttete Wein.mp3 CD01/04-Der Norden.mp3 Zusammen/CD-01CD01/04-Der Norden.mp3 CD01/05-Ein Vortrag über Staub.mp3 Zusammen/CD-01CD01/05-Ein Vortrag über Staub.mp3 CD01/06-Die Diskussion der Wissenschaftler.mp3 Zusammen/CD-01CD01/06-Die Diskussion der Wissenschaftler.mp3 CD01/07-Lyra und Lord Asriel.mp3 Zusammen/CD-01CD01/07-Lyra und Lord Asriel.mp3 CD01/08-Die Sorgen des Rektors.mp3 Zusammen/CD-01CD01/08-Die Sorgen des Rektors.mp3 CD01/09-Lyras Jordan.mp3 Zusammen/CD-01CD01/09-Lyras Jordan.mp3 CD01/10-Ein Gespräch mit Lord Asriel.mp3 Zusammen/CD-01CD01/10-Ein Gespräch mit Lord Asriel.mp3 |
Ein Slash (/) ist zuviel da. Wenn ich mit basename und ähnlichem anfange, dann müsste ich mir eine skript-Datei erstellen und könnte es nicht mehr als Einzeiler nutzen, oder?
Es geht halt nur darum, dass die folgenden Unterverzeichnisse "weg" müssten, deren Name aber an den Anfang der MP3en gesetzt werden müsste. Bei zweimal je 11 Verzeichnissen mit mehreren Dateien ist es per Hand zu viel arbeit.
1 2 | tobias@tobias-netbook:~/Musik/Hoerbuecher/Philip Pullmann - Der goldene Kompass$ ls CD01 CD02 CD03 CD04 CD05 CD06 CD07 CD08 CD09 CD10 CD11 Der goldene Kompass.txt Zusammen |
Im Terminal Fenster wäre es halt schneller, mit der Pfeiltaste den "Befehl" wieder auszurufen um dann die Zahl des Unterverzeichnisses zu ändern. Die *.sh mehrfach aufzurufen, ist nerviger, vorallem ich für die erstellung eh auch Hilfe bräuchte.
Das ganze nur, da ein MP3-Player die ID3-Tags nicht erkennt und ich bei dem nicht alle Unterverzeichnisse zum Abspielen einreihen kann. Daher muss ich alle in einem Verzeichnis haben und eben den Dateinamen ändern. Hoffe das war soweit verständlich.
Hoffe ihr könnt mir helfen!
Liebe Grüße Tobias