Sie werden sich in Situationen wiederfinden, in denen Sie eine Datei leeren müssen. Dies passiert oft, wenn Sie riesige Protokolldateien haben und wie würden Sie das machen?
Ein nicht so sauberer Weg wäre, die Datei zu entfernen und dann eine neue Datei zu erstellen. Aber das ist keine gute Idee. Es wird nicht dieselbe Datei sein, der Zeitstempel (atime, mtime usw.) wird zusammen mit anderen Dateiberechtigungen unterschiedlich sein.
Anstatt eine neue leere Datei zu erstellen, können Sie deren Inhalt löschen. Also, wie leert man eine Datei unter Linux? Wie lösche ich eine Datei von ihrem gesamten Inhalt, ohne die eigentliche Datei zu löschen?
4 Möglichkeiten, eine Datei unter Linux zu leeren
Es gibt mehrere Möglichkeiten, wie Sie eine Datei leeren können, ohne die Datei tatsächlich zu löschen. Lassen Sie mich Ihnen einige dieser Methoden zeigen.
Methode 1:Kürzen Sie eine Datei mit dem Befehl truncate
Der sicherste Weg, eine Protokolldatei zu kürzen, ist die Verwendung des Befehls truncate.
truncate -s 0 filename
Im obigen Befehl wird -s verwendet, um die Größe (in Bytes) der Datei festzulegen/anzupassen. Wenn Sie -s 0 verwenden, bedeutet dies, dass Sie die Dateigröße auf 0 Bytes eingestellt haben. In
Methode 2:Datei mit :> oder>
leerenDer einfachste Weg, eine Datei zu leeren, ist die Verwendung des folgenden Befehls. Wenn die Datei nicht verwendet wird, funktioniert sie in Bash:
> filename
Während das obige nur in Bash Shell funktioniert, können Sie einen ähnlichen Befehl für andere Shells verwenden:
:> filename
Sie können auch diesen Befehl verwenden, um eine Datei zu löschen:
true > filename
Methode 3:Verwendung des echo-Befehls zum Leeren einer Datei unter Linux
Eine andere Möglichkeit, eine Datei zu leeren, ist der echo-Befehl unter Linux:
echo > filename
Sie können den echo-Befehl auch auf diese Weise verwenden:
echo "" > filename
Methode 4:Verwenden Sie /dev/null, um eine Datei zu löschen
Sie können auch das berühmte /dev/null verwenden und mit dem cat-Befehl kombinieren, um eine Protokolldatei zu löschen:
cat /dev/null > file.log
Am Ende…
Und wenn Sie nicht genügend Berechtigungen für einen der oben genannten Befehle haben, ist dies der sichere, aber etwas schmutzige Weg, dies zu erreichen:
touch newfile
mv newfile filename
Sie können eine Datei auch leeren, indem Sie alle Zeilen im Vim-Editor löschen.
Wenn es Ihr Ziel war, Protokolldateien zu löschen und freien Speicherplatz zu schaffen, sollten Sie sich mit dem Bereinigen von Journald-Protokollen vertraut machen.
Ich hoffe, dieser kurze Tipp hat Ihnen geholfen, eine Datei unter Linux zu löschen. Setzen Sie ein Lesezeichen für weitere schnelle Linux-Tipps.