(2 Antworten)
Vor 6 Jahren geschlossen.
-
Eine Umleitung ist hier nicht erlaubt. Ist
cat
nicht erlauben? Aber ist die
Umleitung nicht unabhängig von einem damit ausgeführten Befehl?$ cat bk > bk cat: bk: input file is output file
-
Warum leert die folgende Umleitung die Datei:
$ less bk > bk
awk
funktioniert auch ähnlich wieless
in Bezug auf die Weiterleitung.awk
ist derjenige, mit dem ich das Problem tatsächlich gefunden habe, während die obigen Beispiele bedeutungslos sind
Was ist im Allgemeinen der richtige Weg, die Weiterleitung zu verwenden?
Akzeptierte Antwort:
Das Problem ist, dass die Ausgabeumleitung die Datei vor less
killt wird sogar gestartet:
open("file", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
dup2(3, 1) = 1
close(3) = 0
execve("/usr/bin/less", ["less", "-WNS", "file"], [/* 102 vars */]) = 0
Die normale Ausgabeumleitung überschreibt die Datei. Der O_TRUNC
(siehe man 2 open
) löscht den Dateiinhalt.