Найти все жесткие ссылки определенного файла
У меня есть имя файла, для которого я должен получить все hard links
(которые находятся в том же каталоге).
Я думал об использовании readlink
в комбинации с dir->d_name
маневр, но это относится только к мягким ссылкам.
Есть идеи?
1 ответ
Решение
Просмотрите каждый файл в каталоге и lstat()
Это. Если его номер индекса (st_ino
) совпадает с файлом, который вас интересует, и они имеют одинаковое количество ссылок (st_nlink
), что больше 1, то они жестко связаны друг с другом.
(Проверка количества ссылок не является обязательной, но это хорошая проверка на работоспособность.)