Estou executando uma sessão interativa do bash. Eu criei alguns descritores de arquivo, usando exec, e gostaria de listar qual é o status atual da minha sessão do bash.
Existe uma maneira de listar os descritores de arquivos abertos no momento?
linux
bash
file-descriptors
open-files
dangonfast
fonte
fonte
bash
não faz parte do kernel, portanto, não pode saber o que outros processos estão fazendo, mesmo aqueles que foram iniciados.Respostas:
Sim, isso listará todos os descritores de arquivos abertos:
Obviamente, como sempre: 0 é stdin, 1 é stdout e 2 é stderr.
O quarto é um arquivo aberto (para escrever) neste caso.
fonte
Supondo que você queira listar os descritores de arquivo anexados a qualquer terminal, você pode usar
lsof
/fuser
ou similares, como:Essas ferramentas basicamente analisam
/proc
, para que você possa acessar/proc/$$/fd/
também, por exemplo:fonte
\/pts\/
rejeita arquivos abertos comoexec 4>testfile.txt
Apenas rede fd:
fonte