// you’re reading...

Heimserver

Dynamischer Dateiname unter Linux

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.

Empfehlen:    
   

Diskussion

Keine Kommentare für “Dynamischer Dateiname unter Linux”

Kommentar schreiben


(Eingegebener Name wird unter Impressum/Kontakt der Website validiert)

*