Heute habe ich mit einem Programm herumexperimentiert, welches in eine Logdatei Infos geschrieben hatte. Da ich immer mal wieder den Status des Programm zurücksetzen wollte, musste ich die Logdatei leeren, ohne die Datei zu entfernen

Hierzu habe ich verschiedene Möglichkeiten genutzt.

Möchte man die Datei einfach nur leeren, so genügt:

1
:> logfile.log

Sollen hingegen die letzten 5 Zeilen behalten werden, so nutzt man am besten eine Zwischendatei:

1
tail -n 5 logfile.log > logfile.log.tmp && mv logfile.log.tmp logfile.log

Oder alternativ (ohne Zwischendatei, geht aber nicht immer):

1
echo "$(tail -5 logfile.log)" > logfile.log