GNU/Linux >> Znalost Linux >  >> Linux

Echo To File Descriptor přepíše soubor?

Mám potíže s pochopením toho, co se děje, když se pokouším zapisovat do deskriptoru souboru? Zdá se, že přepisuje původní obsah? Je toto očekávané chování?

Zopakoval jsem to v příkladu níže:

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

Přijatá odpověď:

Protože jste neprovedli žádné čtení deskriptoru 88, aktuální pozice hledání byla „0“, takže zápis proběhl v tomto bodě.

Pokud byste si místo toho přečetli soubor předtím, pak se připojí:

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. Linux – Nakonfigurujte systém Linux pro agresivnější ukládání do mezipaměti souborového systému?

  2. MV přepíše soubor pouze pro čtení bez výzvy?

  3. Získejte „povolení odepřeno“ při přesměrování výstupu Sudo Echo „xyz“ do souboru?

  1. Přenositelnost odkazů na deskriptor souboru?

  2. Jak připojím text k souboru?

  3. Jak rekurzivně zobrazit obsah souboru?

  1. Přesměrování obsahu souboru na příkaz „echo“?

  2. Jak vyčistit přípony souborů?

  3. The Bash ‘?