Os links físicos podem ser identificados comparando o número do inode e o número do dispositivo (dois sistemas de arquivos montados diferentes podem ter um arquivo com o mesmo número de inode, mas terão números de dispositivos diferentes) . Você pode ler o dispositivo / inode manualmente com stat $file
, ou find
pode fazer isso com -samefile
. Você pode tornar a pesquisa por links físicos mais eficiente pesquisando apenas no mesmo dispositivo:
find $fsroot/. -mount -samefile $myfile
Os links suaves são mais difíceis, pois podem estar localizados em qualquer lugar. Você precisa desreferencia-los para identificar o inode / dispositivo. Você pode fazer isso manualmente com stat -L
ou automaticamente com find -L
:
find -L / -samefile $myfile
Note que isso também encontrará links físicos. Eu não acho que find
tenha uma maneira fácil de procurar apenas links que apontam para um inode específico.
Pode ser que alguns sistemas de arquivos possam informar essas informações com mais eficiência, mas acho que, no caso geral, você precisa verificar todos os arquivos.