Назад | Перейти на главную страницу

Жесткие ссылки файла

Как в Linux получить список жестких ссылок на файл?

Начните с проверки того, что количество жестких ссылок от ls больше 0.

Если да, то вы можете поискать их несколько кропотливо:

find <path> -type f -samefile <source>

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

find /partition_root -samefile /partition_root/file/to/find/hardlinks/of

Может быть более простой / быстрый способ, но

stat file

что дает нечто похожее на

  File: `file'
  Size: 14              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 4227594     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  501/   phone)   Gid: (  501/   phone)
Access: 2009-09-22 15:33:15.000000000 +0100
Modify: 2009-05-11 17:01:15.000000000 +0100
Change: 2009-05-11 17:05:09.000000000 +0100

затем используя номер inode из строки Inode,

find /path -inum 4227594

Только для жестких ссылок:

find -samefile xaa -ls

также включить символические ссылки:

find -L -samefile xaa -exec ls -li {} \;

С помощью -exec ls здесь вместо -ls показывает владельца, группу, разрешения и цель самих символических ссылок вместо информации о цели.