31 Stimmen

JPG-Dateien nach dem Erstellungsdatum umbenennen

Ich möchte alle Dateien in einem bestimmten Verzeichnis umbenennen. Sie sollen nach ihrem Erstellungsdatum umbenannt werden.
Wenn meine Datei also Image1.jpg heißt, sollte sie in etwas wie "Jan 16 12:09:42 2011.jpg" umbenannt werden.
Ich möchte dies über die Befehlszeile tun. Ich habe es schon versucht:

stat -f %SB Image0100.jpg

Aber wie kann ich das kombinieren mit mv Befehl? Und wie wird die Iteration stat et mv durch die gesamten Akten?
Oder gibt es eine einfache Möglichkeit, alle Dateien nach ihrem Erstellungsdatum umzubenennen?

0voto

Curtis Yallop Punkte 5900

Eine Perl-Alternative:

Ich mag das kurze Muster zum Hinzufügen eines Präfixes mit fester Zeichenkette in Perl sehr:

/bin/ls *.jpg | perl -pe 's/.*/mv "$&" "prefix_$&"/' | sh

Die Erstellung eines Datumspräfixes ist etwas komplizierter.

cat >t.pl

while(<*.jpg>) {
    $mtime = (stat($_))[9];
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($mtime);
    $year += 1900;
    ++ $mon;
    printf("mv \"%s\" \"%d-%.2d-%.2d-%s\"\n", $_, $year, $mon, $mday, $_)
}

perl t.pl | sh

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X