O comando lsof deve funcionar para você. Experimente
lsof | grep cwd
em que cwd representa o diretório de trabalho atual.
Estou tentando codificar um aplicativo simples que deve ler todos os arquivos abertos no momento em um determinado diretório. Mais especificamente, eu quero obter uma lista de arquivos abertos em qualquer lugar dentro da minha pasta Documentos, mas eu não quero apenas os IDs ou o nome do processo, eu quero o caminho completo do arquivo aberto.
A coisa é que eu ainda não encontrei nada para fazer isso. Eu não poderia fazê-lo nem no shell linux (usando comandos ps e lsof) nem usando a biblioteca psutil do python. Nenhum deles está me dando a informação que eu preciso, que é apenas o caminho dos arquivos atualmente abertos em um diretório.
Algum conselho?
Agradecemos antecipadamente
P.S: Estou marcando isso como uma questão python (além das tags relacionadas ao os) porque seria uma vantagem se pudesse ser feito usando alguma biblioteca python.
O comando lsof deve funcionar para você. Experimente
lsof | grep cwd
em que cwd representa o diretório de trabalho atual.
Parece que deve haver uma maneira mais eficiente de fazer isso, mas isso deve dar o resultado desejado:
lsof -Fn +D $HOME | sed -n '/^n/ s/n//p' | sort -u
Veja essa pergunta relacionada em stackoverflow Verifique se há arquivos abertos com o Python no Linux .