Ich habe nach einer Lösung für das Umbenennen von Fotos unter Mac OS X gesucht. Ich habe viele Lösungen gefunden, aber die meisten funktionieren nicht, wenn die Datei entweder ein Leerzeichen enthält oder wenn ich ein Leerzeichen einfügen möchte im Dateinamen
Zum Beispiel habe ich dieses Skript gefunden:
for i in *.jpg; do newname=$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- $i); mv -- $i $newname.jpg; done
Das Skript funktioniert, solange ich kein Leerzeichen in den endgültigen Dateinamen setze (ich möchte ein Leerzeichen im Dateinamen, da ich meine Dateien seit drei Jahren unter Windows umbenannt habe). Und es bricht auch, wenn die Datei selbst ein Leerzeichen enthält. Wenn ich also ein Foto mit dem Namen "Hello World.jpg" habe, wird es nicht verarbeitet.
Hätte jemand bitte eine Lösung dafür? Dies erfordert vorzugsweise keine zusätzliche Software (ich möchte das Skript bei jedem Maschinenwechsel kopieren / einfügen).
Vielen Dank!
echo
vormv
können Sie sehen, was die Befehle sein werden.$i
im$(... $i)
. (Dies funktioniert trotz der äußeren Anführungszeichen.) Sie sollten in der Regel doppelte Anführungszeichen setzen irgendein Variablensubstitution, es sei denn, Sie haben einen bestimmten Grund, dies nicht zu tun.stat
Die Optionen scheinen anders zu sein und ich habe die inneren Zitate verfehlt.Normalerweise reicht es aus, um es zu ersetzen
$i
durch"$i"
.quelle