GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Effizienteste Methode, um den Inhalt einer Datei zu leeren?

Mir sind drei Methoden bekannt, um alle Einträge aus einer Datei zu löschen.

Sie sind

  • >filename
  • touch filename
  • filename < /dev/null

Von diesen dreien missbrauche ich >filename die meisten, da dies die geringste Anzahl von Tastenanschlägen erfordert.

Ich würde jedoch gerne wissen, welche der drei die effizienteste ist (falls es effizientere Methoden gibt) in Bezug auf große Protokolldateien und kleine Dateien.

Wie funktionieren die drei Codes und wie löschen Sie den Inhalt?

Bearbeiten :Wie in dieser Antwort besprochen, ist dies eigentlich nicht der Fall Löschen Sie die Datei!

Akzeptierte Antwort:

Eigentlich ist die zweite Form touch filename löscht nichts aus der Datei – es erstellt nur eine leere Datei, wenn keine existiert, oder aktualisiert das Datum der letzten Änderung einer vorhandenen Datei.

Und der dritte filename < /dev/null versucht filename mit /dev/null auszuführen als Eingabe.

cp /dev/null filename funktioniert.

Am effizientesten wäre truncate -s 0 filename (siehe hier).

Andernfalls cp /dev/null filename oder > filename sind beide in Ordnung. Beide öffnen und schließen die Datei mit der Einstellung „truncate-on-open“. cp öffnet auch /dev/null , wodurch es geringfügig langsamer wird.

Andererseits truncate wäre wahrscheinlich langsamer als > filename wenn es von einem Skript ausgeführt wird, da die Ausführung des Befehls truncate erfordert, dass das System die ausführbare Datei öffnet, lädt und dann ausführt.


Linux
  1. Den Inhalt einer Datei in die Zwischenablage kopieren, ohne den Inhalt anzuzeigen?

  2. Wie übergebe ich den Inhalt einer Datei als Befehlszeilenparameter?

  3. lsinitramfs:Listet den Inhalt des initrd-Dateisystems auf.

  4. Die effizienteste Methode zum Kopieren einer Datei unter Linux

  5. Wie man nur die Anzahl der Zeilen einer Datei erhält

Der Unterschied zwischen mehr, weniger und den meisten Befehlen

So zeigen Sie den Inhalt eines Archivs oder einer komprimierten Datei unter Linux an

Zeigen Sie den Inhalt einer Datei in der Linux-Befehlszeile an

So erhalten Sie den Dateinamen aus dem vollständigen Pfad in Linux

Linux - Prüfen Sie, ob am Ende einer Datei eine leere Zeile steht

Wie kann ich den Dateiinhalt rekursiv anzeigen?