Inhalt der angegebenen Datei leeren, ohne über die Befehlszeile zu löschen

Wenn Sie an der Befehlszeile arbeiten und den Inhalt einer Datei schnell leeren müssen, können Sie ein Größer-als-Symbol und ein Leerzeichen vor den betreffenden Dateinamen setzen.

So löschen Sie den Inhalt einer Datei über die Befehlszeile

Der Trick, den Inhalt einer Datei zu entfernen, während diese Datei beibehalten wird, sieht folgendermaßen aus:

> filename

Dieser Ansatz funktioniert in bash und vielen anderen Shells, aber Sie können auch eine Variation von echo verwenden, wenn es nicht in zsh oder einer anderen Shell funktioniert. Verwenden Sie für zsh den folgenden Inhalt, um den Inhalt einer Datei über die Befehlszeile mithilfe von Echo-Null und Umleitung zu löschen:

echo -n > filename

Der gesamte Inhalt der Zieldatei wird sofort ohne Warnung gelöscht und bleibt leer, während die Dateiexistenz, der Dateiname und die Berechtigungen beibehalten werden. Dies ist oft vorzuziehen und schneller als das manuelle Löschen und erneute Erstellen einer Datei.

Ein gutes praktisches Beispiel ist das Löschen der Inhalte von Protokolldateien, zum Beispiel:

> ~/Library/Logs/updates.log

Oder erreichen Sie denselben Effekt mit der Echoumleitung:

echo -n > ~/Library/Logs/updates.log

Sie können diesen Befehl auch verwenden, um eine neue 0-Byte-Datei am Speicherort zu erstellen, ähnlich wie beim Befehl touch.

Sie werden dies als besonders hilfreich empfinden, wenn Sie die Berechtigungen einer bestimmten Datei beibehalten möchten, aber den Inhalt überschreiben möchten, was häufig bei Protokolldateien und ähnlichen Elementen auftritt.