как удалить файл по иноду в ядре Linux

как удалить файл по иноду в ядре Linux

Я получил индекс файла в ядре Linux и хочу удалить файл с помощью индекса.

Нужно ли мне отключать каждый dentry inode? Или мне нужно отключать любой dentry?

Какие замки следует использовать для защиты чего?

решение1

Вызовы переносимого удаления файлов, unlink(), remove() и высокоуровневые оболочки, в основном все принимают имена путей. Иноды в основном являются деталью реализации.

Чтобы сделать это в оболочке, используйте такие инструменты, как GNUнаходить.

find /tmp  -type f -inum $INODE

Замените /tmpна путь поиска, $INODEна номер. Добавьте, -delete если хотите, чтобы результаты были несвязанными. Могут быть найдены несколько имен одного и того же inode.

Поскольку этот метод охватывает все файлы, он неэффективен.

решение2

В Linux удалить файл невозможно.

Что тыможетнужно удалить все ссылки на него, и тогда файловая система автоматически удалит пространство и отметит inode как неиспользуемый.

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

Связанный контент