Как говорит Рабарберски, lsof
может использоваться для поиска любого процесса с открытым файлом. Обратите внимание, что вам нужно запустить программу от имени пользователя root, т. Е. Использовать ее sudo
, и вы можете указать путь к файлу, который вас интересует, в качестве аргумента, поэтому нет необходимости в grep
вызове в подсказке, на которую указывает Рабарберски. Кроме того, если процесс удерживает блокировку файла, вы должны увидеть это по столбцу FD в lsof
выходных данных. Смотрите страницу руководства для деталей. (Когда я запускаю sudo lsof
на своей машине, я не вижу заблокированных файлов, поэтому я не гарантирую, что это работает правильно на Mac. В sudo
конце концов, это универсальная программа Unix, и, возможно, некоторые функции не работают в OSX.)
Вы не можете разблокировать файл, не убив процесс, который удерживает блокировку. Но вы можете удалить его rm
из командной строки.