5 Wege, den Inhalt einer großen Datei in Linux zu leeren oder zu löschen

, Author

Gelegentlich möchte man beim Umgang mit Dateien im Linux-Terminal den Inhalt einer Datei löschen, ohne sie unbedingt mit einem Linux-Befehlszeilen-Editor zu öffnen. 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, sollten Sie beachten, dass in Linux alles eine Datei ist und Sie immer sicherstellen müssen, dass es sich bei den Dateien, die Sie leeren wollen, nicht um wichtige Benutzer- oder Systemdateien handelt. Das Löschen des Inhalts einer kritischen System- oder Konfigurationsdatei könnte zu einem fatalen Anwendungs-/Systemfehler oder -ausfall führen.

Nachfolgend finden Sie einige Möglichkeiten, den Inhalt von Dateien über die Befehlszeile zu löschen.

Wichtig: Für die Zwecke dieses Artikels haben wir in den folgenden Beispielen die Datei access.log verwendet.

Dateiinhalt durch Umleitung auf Null leeren

Am einfachsten lässt sich der Inhalt einer Datei leeren, indem man den Shell-Redirect null (nicht existierendes Objekt) auf die Datei wie folgt verwendet:

# > access.log
Empty Large File Using Null Redirect in Linux
Empty Large File Using Null Redirect in Linux

Empty File Using ‚true‘ Command Redirection

Hier werden wir ein Symbol verwenden : ist ein eingebauter Shell-Befehl, der essentiell äquivalent zum true-Befehl ist und als no-op (keine Operation) verwendet werden kann.

Eine andere Methode besteht darin, die Ausgabe des eingebauten Befehls : oder true wie folgt in die Datei umzuleiten:

# : > access.logOR # true > access.log
Große Datei mit Linux-Befehlen leeren
Große Datei mit Linux-Befehlen leeren

Leere Datei mit cat/cp/dd-Werkzeugen mit /dev/null verwenden

In Linux wird das null-Gerät grundsätzlich zum Verwerfen von unerwünschten Ausgabeströmen eines Prozesses oder als geeignete leere Datei für Eingabeströme verwendet. Dies geschieht normalerweise durch einen Umleitungsmechanismus.

Die /dev/null-Gerätedatei ist also eine spezielle Datei, die alle Eingaben, die an sie gesendet werden, abschreibt (entfernt) oder deren Ausgabe der einer leeren Datei entspricht.

Außerdem kann man den Inhalt einer Datei leeren, indem man die Ausgabe von /dev/null als Eingabe mit dem Befehl cat dorthin umleitet:

# cat /dev/null > access.log
Leere Datei mit dem Befehl cat
Leere Datei mit dem Befehl cat

Als Nächstes werden wir den Befehl cp verwenden, um den Inhalt einer Datei zu löschen, wie gezeigt.

# cp /dev/null access.log
Dateiinhalt mit dem cp-Befehl leeren
Dateiinhalt mit dem cp-Befehl leeren

Im folgenden Befehl steht if für die Eingabedatei und of für die Ausgabedatei.

# dd if=/dev/null of=access.log
Leerer Dateiinhalt mit dem dd-Befehl
Leerer Dateiinhalt mit dem dd-Befehl

Leere Datei mit dem echo-Befehl

Hier können Sie einen echo-Befehl mit einer leeren Zeichenfolge verwenden und ihn wie folgt an die Datei weiterleiten:

# echo "" > access.logOR# echo > access.log
Leere Datei mit echo-Befehl
Leere Datei mit echo-Befehl

Hinweis: Sie sollten bedenken, dass eine leere Zeichenkette nicht dasselbe ist wie null. Eine Zeichenkette ist bereits ein Objekt, genauso wie sie leer sein kann, während null einfach die Nichtexistenz eines Objekts bedeutet.

Aus diesem Grund wird, wenn Sie das Ergebnis des obigen echo-Befehls in die Datei umleiten und den Inhalt der Datei mit dem cat-Befehl anzeigen, eine leere Zeile (leere Zeichenkette) gedruckt.

Um eine Nullausgabe an die Datei zu senden, verwenden Sie das Flag -n, das echo anweist, den abschließenden Zeilenumbruch nicht auszugeben, der zu der im vorherigen Befehl erzeugten leeren Zeile führt.

# echo -n "" > access.log
Leere Datei mit Null-Umleitung
Leere Datei mit Null-Umleitung

Leere Datei mit truncate-Befehl

Der truncate-Befehl hilft, eine Datei auf eine bestimmte Größe zu verkleinern oder zu vergrößern.

Sie können ihn mit der Option -s verwenden, die die Dateigröße angibt. Um den Inhalt einer Datei zu leeren, verwenden Sie eine Größe von 0 (Null), wie im folgenden Befehl:

# truncate -s 0 access.log
Dateiinhalt in Linux kürzen
Dateiinhalt in Linux kürzen

Das war’s fürs Erste, in diesem Artikel haben wir mehrere Methoden zum Löschen oder Leeren von Dateiinhalten mit einfachen Befehlszeilen-Dienstprogrammen und Shell-Umleitungsmechanismen behandelt.

Dies sind wahrscheinlich nicht die einzigen praktischen Möglichkeiten, die zur Verfügung stehen, daher können Sie uns auch andere Methoden, die in dieser Anleitung nicht erwähnt wurden, über den Feedback-Bereich unten mitteilen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.