Я заметил, что иногда Mail.app блокирует файлы. Сама блокировка позволяет перемещать файлы в корзину, но не позволяет очищать корзину. (Возможно, в этом случае Trash следует переименовать в Thrash)
Есть ли способ (с помощью команды терминала или приложения) увидеть, какое приложение блокирует файл и / или разблокирует файл, не выходя из приложения?
Ответы:
Как говорит Рабарберски,
lsof
может использоваться для поиска любого процесса с открытым файлом. Обратите внимание, что вам нужно запустить программу от имени пользователя root, т. Е. Использовать ееsudo
, и вы можете указать путь к файлу, который вас интересует, в качестве аргумента, поэтому нет необходимости вgrep
вызове в подсказке, на которую указывает Рабарберски. Кроме того, если процесс удерживает блокировку файла, вы должны увидеть это по столбцу FD вlsof
выходных данных. Смотрите страницу руководства для деталей. (Когда я запускаюsudo lsof
на своей машине, я не вижу заблокированных файлов, поэтому я не гарантирую, что это работает правильно на Mac. Вsudo
конце концов, это универсальная программа Unix, и, возможно, некоторые функции не работают в OSX.)Вы не можете разблокировать файл, не убив процесс, который удерживает блокировку. Но вы можете удалить его
rm
из командной строки.источник
sudo
в конце концов…», этоlsof
я и хотел упомянуть. Не собираюсь редактировать это - это слишком незначительно, чтобы оправдать удар по первой полосе.Как указывали другие, Лсоф делает свое дело. Чтобы сделать задачу еще проще, я предлагаю (бесплатное) приложение «Что меня держит» (URL: http://www.hamsoftengineering.com/products/wkm/wkm.html ), которое в основном является интерфейсом для lsof и имеет несколько вариантов экономии времени.
источник
По-видимому, для этого
lsof
можно использовать терминальную команду («список открытых файлов»): http://hints.macworld.com/article.php?story=20040121001144687источник