Ответ 1
Использовать, например. lsof
( "список открытых файлов" ) и отфильтруйте вывод или используйте параметр -c programX
, чтобы ограничить его файлами, открытыми программойX. Это выражение может быть подстановочным знаком.
В Linux, как я могу получить список файлов, открытых в настоящее время в программе X?
(В частности, я нахожусь в Fedora, а программа Zend Studio, но я предполагаю, что есть общий ответ.)
Использовать, например. lsof
( "список открытых файлов" ) и отфильтруйте вывод или используйте параметр -c programX
, чтобы ограничить его файлами, открытыми программойX. Это выражение может быть подстановочным знаком.
Вы можете найти символические ссылки на фактические файлы в /proc/PID/fd
, где PID
- это идентификатор процесса.
ls -l /proc/<zend studio pid>/fd
распечатает список дескрипторов файлов. Те, которые сопоставляются с файлами, открытыми через open()
, будут символическими ссылками на путь файла, используемый для их открытия.
Установите программу lsof
, если вы еще этого не сделали. Получите pid запущенной программы. Запустите lsof -p [pid]
.
lsof -p [PID]
Или, чтобы получить PID за один раз
lsof -p `pgrep [PROG_NAME]`
Или, еще проще
lsof -c [PROG_NAME]
Вы можете использовать
ls /proc/PID/fd | wc -l
Что возвращает количество файлов, открытых PID или вы можете использовать lsof (список открытых файлов)
lsof -a -p pid