Des öfteren kommt man die die Verlegenheit, dass man eine Datei so umbenennen möchte, dass das Modifikationsdatum der Datei an den Namen angehängt wird. Zum Beispiel soll aus foo.bar die Datei foo.bar_2013-02-12 werden.
Jetzt kann man das natürlich so von Hand tippen, nach dem man sich mit ls -l
über das entsprechende Datum informiert hat. Man kann das aber auch die Shell machen lassen:
mv foo.bar foo.bar_`stat -c '%y' foo.bar | cut -f 1 -d " "`
Dabei muss man aber viel tippen und vor allem den Dateinamen gleich drei mal. Das geht auch anders:
THEFILE=foo.bar && mv $THEFILE ${THEFILE}_`stat -c '%y' $THEFILE | cut -f 1 -d " "`
Weiterhin viel Tipparbeit, daher bauen wir daraus am besten einen Alias. Allerdings kann man einem Alias keine Parameter übergeben, daher machen wir eine Funktion daraus und tragen das folgende in unsere bash.rc ein:
mvdate(){ mv $1 ${1}_`stat -c '%y' $1 | cut -f 1 -d " "`; }
Nun macht mvdate foo.bar
aus der Datei foo.bar die foo.bar_2013-02-12.