GNU/Linux >> Tutoriales Linux >  >> Linux

Echo To File Descriptor sobrescribe el archivo?

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

Linux
  1. ¿Portabilidad de los enlaces de descriptores de archivos?

  2. ¿Cómo limpiar las extensiones de archivo?

  3. ¿Cómo evitar un script de Shell el Sigpipe que sería causado por el uso de un descriptor de archivo cerrado?

  4. ¿Obtiene "permiso denegado" al redirigir la salida de Sudo Echo "xyz" a un archivo?

  5. ¿Cómo agrego texto a un archivo?

Introducción al sistema de archivos de Linux

Uso del archivo de configuración SSH

El archivo de hosts en Linux

Cómo hacer eco en un archivo

¿Cuál es el uso de $# en Bash?

¿Cómo mostrar el contenido del archivo de forma recursiva?