Ich hatte in der Vergangenheit öfter Dateien unter Linux, welche einen neuen Dateiennamen mit dynamischen Namensteil erhalten mussten. Ursprung der Aufgabe war ein Tool, welches immer in ein Logfile geschrieben hat, ohne dieses pro Tag neu anzulegen. Dieses wollte ich täglich mittels cronjob wegsichern.
Datum in Dateiname
Im folgenden Beispiel wird der Datei logfile.txt ein dynamischer Teil hinzugefügt:
mv logfile.txt logfile-$(date "+%Y%m%d").txt
Die vorhandene Datei wird umbenannt in “logfile” + Jahr + Monat + Tag + “.txt”. Wird am 01.02.2013 der Befehl zum umbenennen aufgerufen, wird die Datei in logfile-20130201.txt umbenannt. Dem Dateinamen können auch weiter Zeitmerkmale hinzugefügt werden. Dazu muss das date-Kommando um weitere Parameter wie in der folgenden Tabelle ergänzt werden:
| Parameter | Bedeutung | Beispiel |
|---|---|---|
| %Y | Jahr vierstellig | 2013 |
| %y | Jahr zweistellig | 08 |
| %m | Monat zweistellig | 01 |
| %b | Monat ausgeschrieben | JAN |
| %V | Kalenderwoche | 51 |
| %u | Wochentag (0-6) | 3 |
| %d | Tag im Monat zweistellig | 05 |
| %e | Tag im Monat einstellig | 5 |
| %H | Stunde (24h-Format) | 13 |
| %M | Minute der Stunde | 45 |
| %S | Sekunde der Minute | 34 |
Weitere Parameter können Sie der man-Page mittels Befehl “man date” entnehmen.
Weitere dynamische Komponenten über export
Sie können dem Dateinamen (bzw. auch dem Pfad) weitere dynamische Teile hinzufügen. Wenn Sie auf der Konsole den Befehl “export” absetzen, sehen Sie eine Liste aller Umgebungsvariaben, welche Sie wie das Datum mit einem vorangestellten Dollar-Zeichen ($) in den Dateinamen oder den Pfad hinzufügen können. Wenn Sie beispielsweise den Hostnamen in die Datei hinzufügen möchten, ergänzen Sie einfach $HOST:
mv logfile.txt logfile-$(date "+%Y%m%d")-$HOST.txt
Es wird nun die Datei beispielhaft in logfile-20130201-Dateiserver.txt umbenannt, wenn der Hostname des Computers Dateiserver ist.



Diskussion
Keine Kommentare für “Dynamischer Dateiname unter Linux”