Junior
Como ver a lista de descritores de ficheiros no Linux?
sobes.tech IA
Resposta da IA
A lista de descritores de ficheiros pode ser vista usando o comando lsof.
# Mostrar todos os ficheiros abertos e descritores para todos os processos
lsof
# Mostrar ficheiros abertos e descritores para um processo específico por PID
# Substitua <PID> pelo identificador do processo de interesse
lsof -p <PID>
# Mostrar ficheiros abertos e descritores para todos os processos de um utilizador
# Substitua <username> pelo nome de utilizador
lsof -u <username>
# Mostrar ficheiros abertos e descritores para um comando específico
# Substitua <command> pelo nome do comando
lsof -c <command>
# Mostrar ficheiros abertos e descritores relacionados com ligações de rede
lsof -i
# Mostrar ficheiros abertos e descritores relacionados com uma porta específica
# Substitua <port_number> pelo número de porta
lsof -i :<port_number>
# Mostrar ficheiros abertos e descritores relacionados com um ficheiro ou diretório específico
# Substitua <file_or_directory> pelo caminho do ficheiro ou diretório
lsof <file_or_directory>
O lsof apresenta informações num formato de colunas:
- COMMAND: Nome do comando associado ao processo.
- PID: ID do processo.
- USER: Utilizador que possui o processo.
- FD: Descritor de ficheiro. Pode ser:
- cwd: Diretório de trabalho atual.
- rtd: Diretório raiz.
- txt: Ficheiro de texto (código executável).
- mem: Mapa de memória do ficheiro.
- mmap: Ficheiro mapeado na memória.
- <N>u: Descritor de ficheiro <N> aberto em modo "leitura/gravação".
- <N>r: Descritor de ficheiro <N> aberto em modo "apenas leitura".
- <N>w: Descritor de ficheiro <N> aberto em modo "apenas escrita".
- <N>l: Descritor de ficheiro <N> bloqueado.
- TYPE: Tipo de nó:
- REG: Ficheiro normal.
- DIR: Diretório.
- CHR: Dispositivo de caracteres.
- BLK: Dispositivo de blocos.
- FIFO: Canal nomeado (pipe).
- SOCK: Socket.
- DEVICE: Número do dispositivo.
- SIZE/OFF: Tamanho do ficheiro ou deslocamento (offset).
- NODE: Número inode.
- NAME: Nome do ficheiro.
Também pode usar o sistema de ficheiros /proc. Para cada processo (PID), /proc/<PID>/fd/ é um diretório contendo links simbólicos para os ficheiros abertos por esse processo. Cada link é nomeado pelo número do descritor de ficheiro.
# Ver os descritores de ficheiros para um processo com PID <PID>
# Substitua <PID> pelo identificador do processo de interesse
ls -l /proc/<PID>/fd/
A saída de ls -l mostrará o número do descritor e o ficheiro ao qual se refere.