Gelegentlich möchten Sie beim Umgang mit Dateien im Linux-Terminal den Inhalt einer Datei löschen, ohne sie unbedingt mit einem Linux-Befehlszeilen-Editor öffnen zu müssen. Wie kann dies erreicht werden? In diesem Artikel werden wir verschiedene Möglichkeiten zum Leeren von Dateiinhalten mit Hilfe einiger nützlicher Befehle durchgehen.
Achtung :Bevor wir uns die verschiedenen Möglichkeiten ansehen, beachten Sie, dass Sie immer sicherstellen müssen, dass die Datei(en), die Sie leeren, keine wichtigen Benutzer- oder Systemdateien sind, da in Linux alles eine Datei ist. Das Löschen des Inhalts einer kritischen System- oder Konfigurationsdatei kann zu einem schwerwiegenden Anwendungs-/Systemfehler oder -ausfall führen.
Nachdem dies gesagt wurde, finden Sie unten Möglichkeiten zum Löschen des Dateiinhalts von der Befehlszeile aus.
Wichtig :Für diesen Artikel haben wir die Datei access.log
verwendet in den folgenden Beispielen.
1. Leeren Sie den Dateiinhalt durch Umleitung auf Null
Eine einfachste Möglichkeit, den Inhalt einer Datei mit Shell Redirect null
zu leeren oder zu leeren (nicht vorhandenes Objekt) in die Datei wie folgt:
# > access.log
2. Leere Datei mit „wahrer“ Befehlsumleitung
Hier verwenden wir ein Symbol :
ist ein in die Shell eingebauter Befehl, der im Wesentlichen dem true
entspricht Befehl und kann als no-op (keine Operation) verwendet werden.
Eine andere Methode besteht darin, die Ausgabe von :
umzuleiten oder true
eingebauten Befehl in die Datei wie folgt:
# : > access.log OR # true > access.log
3. Leere Datei unter Verwendung von cat/cp/dd-Dienstprogrammen mit /dev/null
Unter Linux ist die null
Das Gerät wird im Wesentlichen zum Verwerfen unerwünschter Ausgabeströme eines Prozesses oder als geeignete leere Datei für Eingabeströme verwendet. Dies geschieht normalerweise durch einen Umleitungsmechanismus.
Und die /dev/null
Die Gerätedatei ist daher eine spezielle Datei, die alle an sie gesendeten Eingaben abschreibt (entfernt) oder deren Ausgabe dieselbe ist wie die einer leeren Datei.
Außerdem können Sie den Inhalt einer Datei leeren, indem Sie die Ausgabe von /dev/null
umleiten dazu (Datei) als Eingabe mit dem cat-Befehl:
# cat /dev/null > access.log
Als Nächstes verwenden wir den Befehl cp, um den Inhalt einer Datei wie gezeigt zu löschen.
# cp /dev/null access.log
Im folgenden Befehl if
bedeutet die Eingabedatei und of
bezieht sich auf die Ausgabedatei.
# dd if=/dev/null of=access.log
4. Datei mit Echo-Befehl leeren
Hier können Sie einen Echo-Befehl mit einem leeren String verwenden und ihn wie folgt in die Datei umleiten:
# echo "" > access.log OR # echo > access.log
Hinweis :Sie sollten bedenken, dass ein leerer String nicht dasselbe ist wie null. Ein String ist bereits ein Objekt, auch wenn er leer sein kann, während null einfach das Nichtvorhandensein eines Objekts bedeutet.
Aus diesem Grund wird, wenn Sie den Ausgang des echo-Befehls oben in die Datei umleiten und den Dateiinhalt mit dem cat-Befehl anzeigen, eine leere Zeile (leerer String) ausgegeben.
Um eine Nullausgabe an die Datei zu senden, verwenden Sie das Flag -n
was echo sagt um den abschließenden Zeilenumbruch nicht auszugeben, der zu der leeren Zeile führt, die im vorherigen Befehl erzeugt wurde.
# echo -n "" > access.log
5. Leere Datei mit dem truncate-Befehl
Das abschneiden Befehl hilft, die Größe einer Datei auf eine definierte Größe zu verkleinern oder zu erweitern.
Sie können es mit dem -s
verwenden Option, die die Dateigröße angibt. Um den Inhalt einer Datei zu leeren, verwenden Sie eine Größe von 0 (Null) wie im nächsten Befehl:
# truncate -s 0 access.log
In diesem Artikel haben wir mehrere Methoden zum Löschen oder Leeren von Dateiinhalten mit einfachen Befehlszeilendienstprogrammen und Shell-Umleitungsmechanismen behandelt.
Dies sind wahrscheinlich nicht die einzigen verfügbaren praktischen Möglichkeiten, dies zu tun, daher können Sie uns über den Feedback-Abschnitt unten auch über alle anderen Methoden informieren, die nicht in diesem Leitfaden erwähnt werden.