Wie kann ich Dateien in Mac OS X stapelweise umbenennen?

Wie kann ich Dateien in Mac OS X stapelweise umbenennen?

Ich habe eine Reihe von Dateien mit Namen wie MOV001.mpg, MOV002.mpg usw. Sie haben alle unterschiedliche Datums- und Uhrzeitangaben.

Wie kann ich sie umbenennen, sodass sie beispielsweise 2012 08 05 13 45 33 MOV001.mpg, 2012 09 02 23 45 07 MOV002.mpg usw. werden?

Mit anderen Worten: Wie kann ich die Datums- und Zeitinformationen aus den Dateien extrahieren, die ich umbenenne?

Vielen Dank im Voraus.

Antwort1

Ungetestet:

for f in *.mpg; do
  mv "$f" "$(stat -f "%m" -t "%Y %m %d %H %M %S" "$f") $f"
done

stat -f "%m"sollte das letzte Änderungsdatum der Datei anzeigen und -t "%Y %m %d %H %M %S"das Datum entsprechend Ihren Anforderungen formatieren.

Antwort2

Die ursprüngliche Frage gibt an, dass die resultierenden Dateien auch mit einer Dateierweiterung enden. Um dies auf portable Weise zu tun, greifen Sie in Bash auf die Erweiterung aus dem integrierten /path/to/file.extwith ${f##*.}zu, was zu einem Einzeiler führt:

for f in *.FOO; do mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}" ; done

und ein Codeblock von

for f in *.FOO ; do
    mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}"
done

Wenn Sie also FOO ändern (z. B. von *.mpg in *.png), sind die Ausgabedateinamen sinnvoll.

verwandte Informationen