Одна жесткая ссылка заблокирована. Как мне удалить другой?

0

У меня есть несколько исполняемых файлов в разных каталогах, которые являются жесткими ссылками на одни и те же данные.

.
|-- file 1
`-- cache
    `-- foo.exe
`-- bar
    `-- foo.exe <-hard link to .\cache\foo.exe
`-- baz
    `-- foo.exe <-hard link to .\cache\foo.exe

Если один из них запущен, я не могу удалить остальные. Я выполняю .\bar\foo.exeи затем пытаюсь удалить, .\baz\foo.exeмне говорят, что файл не может быть удален. Убить .\bar\foo.exeпроцесс невозможно, так как это длительная и дорогостоящая задача. Но мне действительно нужно .\baz\foo.exeуйти, потому что мне нужно имя для чего-то другого.

Есть ли способ разорвать ссылку и избавиться от .\baz\foo.exe?

Мэтью Скотен
источник

Ответы:

2

Вы можете переименовать baz\foo.exe (например, в deleteme.exe), а затем удалить его после завершения процесса.

Вы также можете переместить файл в другое место, если он остается в той же файловой системе. (В пределах одной файловой системы переименование и перемещение - это почти одно и то же.)

grawity
источник
Благодарю. Это, казалось, сработало. Я могу сделать так, чтобы мой сценарий очистки поместил un-delete-ables в ненужную директорию и очистил их позже.
Мэтью Скотен