Удалить жесткую ссылку, когда цель заблокирована системным процессом

361
Jonathan Holvey

Я создал жесткую ссылку (не символическую ссылку) Arial.ttfв своем пользовательском каталоге, используя инструмент Git для Windows GNU ln.exeи Bash. Ссылка указывает на системный шрифт C:\Windows\Fonts\arial.ttf.

ln /c/Windows/Fonts/arial.ttf ~/Fonts/Arial.ttf 

Файл шрифта Windows и (по какой-то причине) моя ссылка постоянно блокируются для использования csrss.exe, что является процессом, описанным Microsoft, как:

... часть пользовательского режима подсистемы Win32 (с частью режима ядра Win32.sys). Csrss означает подсистему времени выполнения клиент / сервер и является важной подсистемой, которая должна работать постоянно.

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

Как я могу избавиться от этого?

1
Вместо этого используйте собственный инструмент Windows, такой как `mklink`, чтобы создать его или добавить папку шрифтов. Почему вы даже создаете эту ссылку? Или создать актуальную копию файла? Seth 6 лет назад 1
Я, безусловно, сделаю одну из этих вещей, как только смогу навести порядок, который создал для себя. Jonathan Holvey 6 лет назад 0
Это не символическая ссылка, хотя ... grawity 6 лет назад 0
@ Grawity Я вижу, к чему ты клонишь. Прочитав немного по [теме] (https://stackoverflow.com/a/29786294/3803805), я отредактировал свой вопрос, чтобы сослаться на жесткую ссылку, а не на символическую. Jonathan Holvey 6 лет назад 0

1 ответ на вопрос

1
Jonathan Holvey

Простым решением было перезагрузить компьютер в безопасном режиме с помощью командной строки и удалить файлы с помощью командной строки.

Я также написал функцию-обертку для lnтого, чтобы я мог использовать mklinkсимволические ссылки Windows с помощью команды ln -s.