Есть ли способ полностью удалить индекс, когда счетчик ссылок равен 2? - PullRequest
2 голосов
/ 12 апреля 2011

В настоящее время мои данные организованы в том, который имеет каталог кэша (где все файлы сначала создаются или передаются). После этого на томе есть подходящие каталоги, которые в своих подкаталогах содержат файлы, жестко связанные с файлами в кеше. Это сделано для того, чтобы один и тот же индекс (файл) мог быть несколько раз жестко связан в нескольких каталогах.

Теперь, пытаясь очистить том, я рекурсивно просматриваю каталоги (не кеш) и, основываясь на определенном критерии, отсоединяю файлы (что в основном уменьшает число инодов в записи кэша на 1). Есть ли способ для меня, чтобы удалить запись кэша непосредственно, когда я удаляю последнюю жесткую ссылку (то есть уменьшение счета от 2 до 1). Таким образом, мне не нужно было бы вручную анализировать весь каталог кэша, чтобы удалить из него любые inode, у которых количество ссылок составляет всего 1.

Я просмотрел функции удаления и удаления ссылок и не смог найти ничего особенного для использования. Есть ли какой-то алгоритм очистки, который внутренне заботится об этом, тогда я могу попытаться реализовать это.

Любая помощь по этому вопросу будет принята с благодарностью. В ожидании быстрого ответа.

Ответы [ 2 ]

2 голосов
/ 12 апреля 2011

Я видел , это и несколько других мест, которые инструктируют вас, как удалить все жесткие ссылки из оболочки (используйте find -samefile и вызовите remove для каждого файла).Вы можете позвонить через систему, хотя некоторые люди могут нахмуриться).

1 голос
/ 12 апреля 2011

Нет, нет ничего, что делает то, что вы хотите из коробки.

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

...