PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verzeichnisse recursive abarbeiten



gumork.gmork
15-12-2009, 12:29
Hallo miteinander,

habe hier auf meinem Rechner eine Verzeichnisstruktur, in der meine gesammte Musiksammlung liegt, also ungefähr so:

- Künstler 1
- - Album
- - - CD
- - - - Titel 1
- - - - Titel 2
- Künstler 2
u.s.w.

Nun möchte ich gerne so viel wie möglich auf meinem tragbaren Musikplayer mitnehmen, dabei kann ich gerne auch einen gewissen Qualitätsverlust in Kauf nehmen. Ich will also alle Musikstücke mit fester Bitrate neu samplen.

Der eigentliche Teil mit dem neuen Samplen der Sücke ist jetzt vom Script her weniger das Problem, aber wie kann ich eine Schleife bauen, die mir die Verzeichnisse recursive abarbeitet. Dabei ist mir die Verzeichnistiefe nicht immer bekannt, sollte also durch das Script variabel abgearbeitet werden. Dann sollte die Schleife auch noch an den Befehl zum Resamplen das aktuelle Verzeichnis mit übergeordneten übergeben können, damit ich die gleiche Verzeichnisstruktur mit Künstler, Album etc. auch im neuen Verzeichnis aufbauen kann (in dem dann alle Musikstücke mit fester Bitrate liegen).

So, ich hoffe ich war in der Lage mein Problem zu schilder, Jetzt hoffe ich einfach mal daß da drauße in der weiten weiten Welt auch jemand ist, der eine Lösung für das Problem fereit hält.

Danke schon mal,

Gumork

gumork.gmork
15-12-2009, 14:51
Ich habe im Eifer des Gefechts ganz vergessen anzugeben, in welcher Umgebung ich mein Vorhaben realisieren will:

Ubuntu 8.04
Bash

jeebee
15-12-2009, 15:18
Mit
find . -type f erhältst du eine Liste von allen Dateien im aktuellen Verzeichnis.

gumork.gmork
15-12-2009, 17:42
Danke für den Tip. Das kann ich aber mit ls auch erreichen. Für mein Problem schwebt mir so etwas wie


for i in * do;

vor, um jede Datei abzuarbeiten. Aber damit kann ich nicht Unterverzeichnisse bearbeiten, wenn ich nicht weiß wie tief die Verzeichnistiefe ist.

msi
15-12-2009, 18:36
ich würds so machen:

geh in das musik verzeichnis in dem verzeichnis darüber unter sampled/ werden die daten abgelegt.



find . -type f | while read l; do
echo $l...
mkdir -p ../sampled/$( dirname $l )
samplemp3 $l ../sampled/$l
done

gumork.gmork
15-12-2009, 20:13
Das sieht gut aus - Danke. Werd ich gleich mal ausprobieren.