Tengo problemas para entender lo que sucede cuando intento escribir en un descriptor de archivo. ¿Parece estar sobrescribiendo el contenido original? ¿Es este el comportamiento esperado?
He replicado esto en el siguiente ejemplo:
$ 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 ...
Respuesta aceptada:
Debido a que no había realizado ninguna lectura en el descriptor 88, la posición de búsqueda actual era "0", por lo que la escritura tuvo lugar en ese punto.
Si, en cambio, hubieras leído el archivo antes de eso, entonces sucederá lo siguiente:
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