Wie speichere ich eine Befehlsausgabe in einer Datei?

Verwenden Sie den Core-Operator > <file>: Standard ist Anhängen, mit -r wird die Zieldatei ersetzt.

Standardmäßig anhängen

dns google.com > save.log zeigt die DNS-Ausgabe weiterhin im Terminal und hängt dieselbe Textdarstellung zugleich an save.log im aktuellen lil-terminal-Verzeichnis an. Danach erscheint der aufgelöste Zielpfad. Ein weiterer Aufruf ergänzt die Datei, statt frühere Daten zu löschen.

Ersetzen oder Anhängen ausdrücklich wählen

Mit -r nach dem Ziel wird die Datei ersetzt: dns gmail.com > save.log -r. -a wählt den ohnehin voreingestellten Anhängemodus ausdrücklich. Ziele mit Leerzeichen werden in Anführungszeichen gesetzt. Da der Operator im Core sitzt, benötigen Module keine eigenen Exportoptionen nur zum Sichern der sichtbaren Ausgabe.

Welche Ausgaben umgeleitet werden können

Geschrieben werden nur Ergebnisse, die sich als Text darstellen lassen. Interaktive Editoren, Geheimnisabfragen, Downloads und Browser-Steuerereignisse werden nicht in Dateien umgewandelt. Verwendet ein Befehl > bereits in seiner eigenen Grammatik, bleibt diese Bedeutung erhalten; die Umleitung wird als abschließender Ausgabeoperator erkannt.

Letztes Ergebnis wiederverwenden

history -o liefert das letzte umleitbare Textergebnis der aktuellen PHP-Sitzung. history -o > history.log speichert es anhängend, history -o > history.log -r ersetzt die Datei. Die Desktop-Kürzel Ctrl/Command+S verwenden dieselben Befehle.

Warum Werte einen Doppelpunkt verwenden

In der aktuellen Grammatik ist > ausschließlich für die Core-Ausgabeumleitung reserviert. Befehle, die einen Wert annehmen, verwenden :: ini app.ini -w key : value, json app.json -w path : value, ses path : value, attr file key : value und db : SELECT .... Damit verschwindet die Mehrdeutigkeit und command ... > file hat überall dieselbe Bedeutung. Eine ältere installierte Modulversion wird erkannt und erhält einen Migrationshinweis, statt unbemerkt den falschen Text umzuleiten.

Beispiele

dns google.com > save.log
dns gmail.com > save.log -r
env > "logs/env current.log" -a
history -o > history.log
history -o > history.log -r

Verwandte Dokumentation

← Zurück zum FAQ