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

Echo To File Descriptor überschreibt die Datei?

Ich habe Schwierigkeiten zu verstehen, was passiert, wenn ich versuche, in einen Dateideskriptor zu schreiben? Es scheint den ursprünglichen Inhalt zu überschreiben? Ist das erwartetes Verhalten?

Ich habe dies im folgenden Beispiel repliziert:

$ echo "The quick brown fox ..." > example.txt  
$ echo "The quick brown fox ..." >> example.txt
$ cat example.txt
The quick brown fox ...  
The quick brown fox ...
$ exec 88<>example.txt
$ cat example.txt
The quick brown fox ...  
The quick brown fox ...
$ echo "jumped" >&88  
$ cat example.txt
jumped  
ck brown fox ...  
The quick brown fox ...
$ echo "jumped" >&88  
$ cat example.txt
jumped  
jumped  
n fox ...  
The quick brown fox ...

Akzeptierte Antwort:

Da Sie den Deskriptor 88 nicht gelesen hatten, war die aktuelle Suchposition „0“, und der Schreibvorgang fand an diesem Punkt statt.

Wenn Sie die Datei stattdessen vorher gelesen haben, werden Anhänge ausgeführt:

bash-4.2$ cat <&88
The quick brown fox ...
The quick brown fox ...

bash-4.2$ echo hello >&88

bash-4.2$ cat example.txt 
The quick brown fox ...
The quick brown fox ...
hello

bash-4.2$ echo more >&88

bash-4.2$ cat example.txt 
The quick brown fox ...
The quick brown fox ...
hello
more

Linux
  1. Portabilität von Dateideskriptor-Links?

  2. Den Inhalt einer Datei auf den Befehl „echo“ umleiten?

  3. Wie bereinigt man Dateierweiterungen?

  4. Die Bash‘?

  5. Ist Mv Atomic auf den Fs?

Einführung in das Linux-Dateisystem

Verwenden der SSH-Konfigurationsdatei

Die Hosts-Datei unter Linux

Wie Echo in Datei

Wie füge ich Text an eine Datei an?

Wie kann ich den Dateiinhalt rekursiv anzeigen?