Es ist schon eine Weile her, seit ich es benutzt habe make, also nimm es mit ...
Ich habe ein Verzeichnis flacmit FLAC-Dateien. Ich habe ein entsprechendes Verzeichnis mp3mit MP3-Dateien. Wenn eine FLAC-Datei neuer als die entsprechende MP3-Datei ist (oder die entsprechende MP3-Datei nicht vorhanden ist), möchte ich eine Reihe von Befehlen ausführen, um die FLAC-Datei in eine MP3-Datei zu konvertieren und die Tags zu kopieren.
Der Kicker: Ich muss das flacVerzeichnis rekursiv durchsuchen und entsprechende Unterverzeichnisse im mp3Verzeichnis erstellen . Die Verzeichnisse und Dateien können Leerzeichen in den Namen enthalten und werden in UTF-8 benannt.
Und ich möchte makedamit fahren.
makenäher an der Implementierung als bloß bash.
shSkript , das die Liste der FLAC - Dateien geht durch ( find | while read flacname), macht eine mp3namedavon läuft „mkdir -p“ auf das dirname "$mp3name", und dann if [ "$flacfile" -nt "$mp3file"]wandelt "$flacname"in "$mp3name"nicht wirklich Magie. Die einzige Funktion, die Sie im Vergleich zu einer makebasierten Lösung tatsächlich verlieren, ist die Möglichkeit, NDateikonvertierungsprozesse parallel zu auszuführen make -jN.
makeund das Vorhandensein von Leerzeichen in Dateinamen sind widersprüchliche Anforderungen. Verwenden Sie ein für die Problemdomäne geeignetes Tool.