GNU/Linux >> Linux Esercitazione >  >> Linux

Echo To File Descriptor sovrascrive il file?

Ho difficoltà a capire cosa sta succedendo quando provo a scrivere su un descrittore di file? Sembra sovrascrivere il contenuto originale? È un comportamento previsto?

L'ho replicato nell'esempio seguente:

$ 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 ...

Risposta accettata:

Poiché non avevi eseguito alcuna lettura del descrittore 88, la posizione di ricerca corrente era "0" e quindi la scrittura è avvenuta a quel punto.

Se, invece, avresti letto il file prima di allora, si verificano le aggiunte:

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à dei collegamenti del descrittore di file?

  2. Reindirizzamento del contenuto di un file al comando "eco"?

  3. Perché il descrittore di file viene aperto e letto solo una volta?

  4. Modifica le autorizzazioni di un file

  5. Errore nella console linux:impossibile ottenere un descrittore di file che fa riferimento alla console

Introduzione al file system Linux

Utilizzo del file di configurazione SSH

Il file host su Linux

Come fare eco in un file

Come si aggiunge del testo a un file?

Come visualizzare il contenuto del file in modo ricorsivo?