Посмотрите, какой процесс использует файл в Mac OS X - PullRequest
86 голосов
/ 30 ноября 2011

Я хотел бы иметь возможность отслеживать файл и видеть, какой процесс касается этого файла. Это возможно? Я знаю, что могу видеть список открытых процессов в мониторе активности, но я думаю, что это происходит быстро для меня, чтобы увидеть его. Причина этого в том, что я использую фреймворк и думаю, что вместо отладочной версии используется системная версия фреймворка, и я хотел бы посмотреть, какой процесс ее затрагивает.

Ответы [ 5 ]

86 голосов
/ 30 ноября 2011

lsof выведет список открытых файлов, но это может быть немного неудобно для кратковременных прикосновений (например, если файл не открывается при запуске lsof, он не отображается).

Я думаю, что вашей лучшей ставкой будет fseventer.app от fernLightning's. Это «ворчание», которое позволяет вам (графически) наблюдать API fsevents в режиме реального времени.

82 голосов
/ 30 ноября 2011

Все просто: sudo fs_usage | grep [path_to_file]

37 голосов
/ 30 ноября 2011

Но я потратил 2 минуты на поиск в Google и нашел ваш ответ здесь .

$ lsof |grep [что угодно]

Где [что угодно] заменяется именем файла, который вы ищете.Благодаря этому вы можете увидеть, какая программа отчаянно удерживает ваш файл, который скоро будет загружен.После выхода из этой программы ваш мусор будет очищен.

12 голосов
/ 07 декабря 2013

Другой вариант - Ленивец . Это бесплатный графический интерфейс с открытым исходным кодом для LSOF, о котором упоминали другие.

12 голосов
/ 01 ноября 2013

Более быстрый способ:

$ lsof [path_to_file]

Это решение не требует пароля root и возвращает следующий, ясный, результат:

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
Finder     497  JR7   21r   REG    1,2   246223 33241712 image.jpg
QuickLook 1007  JR7  txt    REG    1,2   246223 33241712 image.jpg
...