Когда я пытаюсь удалить файл
sudo rm -rf filename
Мне плевать обратно
rm: filename: Resource is busy
Как я могу переопределить это? Я точно знаю , что ресурс не занят. Я просто хочу удалить это!
Когда я пытаюсь удалить файл
sudo rm -rf filename
Мне плевать обратно
rm: filename: Resource is busy
Как я могу переопределить это? Я точно знаю , что ресурс не занят. Я просто хочу удалить это!
Вы не можете переопределить это поведение.
Операционная система заявляет, что она занята. Операционная система, вероятно, правильно. Сообщение об ошибке может быть по следующим причинам:
Поскольку вы хотите удалить файл, я предлагаю загрузить компьютер из образа linux, смонтировать файловую систему и удалить файл.
Попробуйте lsof filename
чтобы увидеть, действительно ли он занят. Одной из наиболее распространенных причин этого является то, что вы пытаетесь удалить каталог, в котором у вас открыта оболочка.
Это старый вопрос, но я добавлю свои 2 цента, потому что в действительности существуют ситуации, когда файл на самом деле не используется, но ОС все еще думает, что это так.
Возможно, что файл на съемном устройстве будет использоваться во время сбоя системы, и система продолжит думать, что файл все еще используется, даже если lsof ничего не возвращает и файл на самом деле не используется. УдалениеDS_store не имеет никакого эффекта.
Временно можно переименовать файл или папку, если это необходимо. Затем извлеките утилиту для работы с диском и выполните восстановление диска / разрешения на восстановление для тома.
Самое простое, что вы можете сделать, это
lsof +D /path/in/question
Вы получите список процессов, которые удерживают этот процесс
Убить процессы, которые перечислены
kill -9 <numberOfProcessID>
Очевидно, без <
Как говорят другие авторы, если вы знаете лучше, чем ОС, перезагрузите систему, и это заставит ее забыть. Но на самом деле они знают, о чем говорят ...
Все вышеперечисленное. Система обычно не лжет, а значит, иногда так и есть.
Читайте дальше, потому что у меня была уникальная ситуация, в которой ни одно из предложенных ранее решений не работало, но мне удалось решить мою проблему.
В моем случае "занятый" файл представлял собой файл шрифта .ttf TrueType на "чужом диске" на подключенном к сети диске, и поэтому он вряд ли будет открыт системой при запуске. Команда lsof ничего не показала. Перезагрузка мака ничего не изменила. Выключение единственного другого компьютера в сети, который мог использовать файл, ничего не изменило.
Дисковая утилита не могла ничего сделать с дисководом, потому что это было не просто съемное устройство, это было удаленное устройство, не подключенное напрямую к Mac.
Я скопировал файл с новым именем, потому что в моем случае я хотел переименовать его, а не удалять. После копирования я не смог удалить оригинал, потому что он все еще был «занят».
Я вошел в подключенный к сети диск и попытался "проверить" "чужой диск", но проверка не удалась. Но теперь я смог удалить исходный файл - в Finder, без использования sudo или rm -f или чего-то подобного. Он больше не был "занят".
Запустите утилиту диска и проверьте, есть ли смонтированный образ, соответствующий этому имени каталога. Извлеките изображение и каталог исчезнет.
У меня была похожая проблема, когда файл main.css блокировался при переходе с одной ветки на другую в Git. Репо было на файловом сервере, и я был связан с SMB. Мой клиент - Mac с OSX 10.10.5 (Yosemite).
Перезагрузка клиента не помогла. Я не мог переключать ветви. Я не мог спрятать тайник. Я не мог просто просмотреть файл. Я застрял.
Тогда я понял, что могу получить доступ к серверу напрямую. Там я смог запустить файл, а затем оформить новую версию. Вернувшись к моему клиенту, все было в порядке.
Просто на тот случай, если он пригодится кому-то еще, кто найдет эту тему тем же способом, что и я.