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