1

Как я могу удалить файл и все ссылки, связанные с файлом, чтобы удалить?

rm -f file.txt удаляет только файл. Более того, при наличии каких-либо других жестких ссылок файловой системы файл не будет удален.

Какой самый полезный способ сделать это?

Или, может быть, есть команда, чтобы получить полный список ссылок файла.

2 ответа2

2

Используйте ls -li filename чтобы получить индекс файла. Затем find <the same filesystem> -inum <inode> чтобы получить файлы с тем же индексом

Это гарантирует, что вы найдете все копии файла (жесткие ссылки). Мягкие ссылки не интересны, потому что они просто указывают на оригинальный файл

1

Чтобы найти все ссылки на файл, жесткие и символические, используйте команду find с опциями -L и -samefile , например:

find / -L -samefile file.txt

Вы можете комбинировать это с rm или с действием find -delete для удаления этих файлов в одной команде, но это заставит меня нервничать, не просматривая список файлов, которые будут удалены в первую очередь. Кроме того, если вы удалите file.txt до того, как найдете все ссылки на него, найти ссылки будет гораздо сложнее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .