Descriptores de archivo
Linux
Un descriptor de archivo es un entero sin signo utilizado por un proceso para identificar un archivo abierto.
# descriptores de archivo
exec 3<> testfile # estamos aplicando un descriptor de archivo con el identificador del numero 3, el cual esta creando el archivo file, este tiene capacidad de lectura y escritura
< : capacidad de lectura
> : capacidad de escritura
whoami >&3 # con esto estamos enviando el output del comando whoami al descriptor de archivo, no veremos nada al dar enter pero todo el output estara en testfile, todo esto lo almacena en formato append, por lo que todo lo que agreges ira a la linea de abajo
exec 3>&- # cerramos el descriptor de archivo, no se borrara el archivo pero ya no podremos trabajar con el descriptor de archivo, si lo intentas te dira "bad file descriptor" ya que no existe ahora
# tambien podemos crear copias de descriptores de archivo
exec 5<> data
whoami >&5
exec 8>&5 # estamos creando sobre la marcha el file descriptor ocho y copiando el del cinco al archivo del ocho, es como si fueran compartidos los dos descriptores pueden cambiar el archivo data y si se cierra uno, por ejemplo el cinco, el ocho puede seguir trabajando con el archivo data
exec 5<> data2
whoami >&5
exec 6>&5- # el mismo proceso anterior pero matamos el file descriptor cinco e iniciamos el seis junto al archivo data2
echo "hola" > file.txt # redirigimos el output del comando anterior al archivo file.txt
pero si volvemos a ejecutar otra instruccion y metemos el output dentro del mismo archivo va a remplazar el otro contenido y no agregarlo en formato append. Para solucionar esto podemos hacer esto en la siguiente cadena que queramos meter
echo "probando denuevo" >> file.txt
# esto lo agregara en formato append
Last updated