Playlist (.m3u) mit find
Tuesday, September 12th, 2006Ich habe meine MP3 und OGG Dateien in einem Ordner sortiert. Ich möchte eine Playlist aus allen Dateien erstellen, einige Verzeichnisse davon ausschliessen, um so die Playlist in XMMS einzulesen und dort mit dem Zufallsmodus Musik hören. Natürlich könnte ich einfach den ganzen Ordner in den XMMS laden. Das braucht aber eine gewisse Zeit, die mich nervt.
Mit Hilfe von find habe ich mir folgendes zusammengebastelt.
find ./ \( -path “./Andere/Goelae” -o -path “./Andere/Scheiss Pluesch” \) -prune -o -name “*.mp3″ -fprint playlist.m3u -o -name “*.ogg” -fprint playlist.m3u
find => Das Programm
./ => Der Suchpfad
\( -path ./Andere/Goelae -o -path “./Andere/Scheiss Pluesch” \) -prune => Die Excludeliste, kann beliebig fortgeführt werden. Besteht aus -path /Pfad zum Verzeichnis/oder der Datei und wenn man einen nächsten anhängen will -o (or). Beinhaltet der Pfad Leerzeichen sollte man den ganzen Pfad in Anführungszeichen schreiben. Natürlich beliebig erweiterbar.
-o -name “*.mp3″ -fprint playlist.m3u => Suche nach allen MP3 Dateien und Speichern der Pfade in der Datei playlist.m3u
-o -name “*.ogg” -fprint playlist.m3u => Suche nach allen OGG Dateien und Speichern der Pfade in der Datei playlist.m3u
Auch hier kann man noch andere Dateitypen anhängen, aber nur wenn man will
Um den Befehl nicht immer eingeben zu müssen schreibt man ihn am besten in ein File im Musikordner und führt ihn von dort aus. Dann liegt auch gerade die Playlist dort.
Es war eine kleine Schlacht, bis ich das rausgebracht habe. Zuerst wollte ich mit folgendem arbeiten:
find ./ -name “*.mp3″ || “*.ogg” -fprint playlist.m3u
Es gibt schön alle Dateien auf die Standardausgabe aus, aber schreibt die Playliste nicht. Darum der etwas umständlichere aber funktionierende Weg.
Bei etwas über 20 GB und einem behinderlangsamen WLAN brauchte die Ausführung des Befehls etwa 10 Sekunden.
Messen kann man es mit Hilfe von time und zwar so:
time ./programmname
Die Ausgabe sieht ungefähr so aus:
real 0m27.772s
user 0m0.013s
sys 0m0.052s