GNU/Linux >> Belajar Linux >  >> Linux

Echo To File Descriptor Menimpa File?

Saya mengalami kesulitan memahami apa yang terjadi ketika saya mencoba menulis ke deskriptor file? Tampaknya menimpa konten aslinya? Apakah ini perilaku yang diharapkan?

Saya telah mereplikasi ini dalam contoh di bawah ini:

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

Jawaban yang Diterima:

Karena Anda belum melakukan pembacaan apa pun pada deskriptor 88, posisi pencarian saat ini adalah “0”, dan penulisan terjadi pada saat itu.

Sebaliknya, jika Anda membaca file sebelumnya, maka penambahan terjadi:

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. Bagaimana Cara Membersihkan Ekstensi File?

  2. Dapatkan "izin Ditolak" Saat Mengarahkan Output Sudo Echo "xyz" Ke File??

  3. Mengapa File Descriptor Dibuka Dan Hanya Dibaca Sekali?

  1. Mengubah Izin Berkas

  2. Bagaimana cara menambahkan teks ke file?

  3. Bagaimana cara menampilkan isi file secara rekursif?

  1. Portabilitas Tautan File Descriptor?

  2. Mengarahkan Isi File Ke Perintah "echo"?

  3. Basa'?