Estoy corriendo en una sesión bash interactiva. He creado algunos descriptores de archivos, usando exec, y me gustaría enumerar cuál es el estado actual de mi sesión bash.
¿Hay alguna manera de enumerar los descriptores de archivo abiertos actualmente?
linux
bash
file-descriptors
open-files
dangonfast
fuente
fuente
bash
no es parte del núcleo, por lo que no puede saber qué están haciendo otros procesos, incluso aquellos que comenzó.Respuestas:
Sí, esto enumerará todos los descriptores de archivos abiertos:
Por supuesto, como siempre: 0 es stdin, 1 es stdout y 2 es stderr.
El cuarto es un archivo abierto (para escribir) en este caso.
fuente
Suponiendo que desea enumerar los descriptores de archivo que están conectados a cualquier terminal, puede usar
lsof
/fuser
o similar como:Estas herramientas básicamente analizan
/proc
, por lo que también puede acceder,/proc/$$/fd/
por ejemplo:fuente
\/pts\/
rechazos abre archivos comoexec 4>testfile.txt
Solo red fd:
fuente