find /partition_root -samefile /partition_root/file/to/find/hardlinks/of
O que é, no Linux, a maneira de obter uma lista de hardlinks de um arquivo?
Comece por garantir que a contagem de hardlinks de ls
seja maior que 0.
Em caso afirmativo, você pode pesquisá-los de forma meticulosa:
find <path> -type f -samefile <source>
Isso localiza todos os arquivos em um determinado caminho e compara o número de inode do seu arquivo de origem com o do (s) arquivo (s) encontrado (s). Hardlinks compartilham o mesmo inode. Então, se eles combinam, você tem um link para você mesmo.
Pode haver um método mais fácil / mais rápido, mas
stat file
que dá algo parecido com
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
usando o número do inode da linha Inode,
find /path -inum 4227594
Somente para links de hardware:
find -samefile xaa -ls
para incluir também links simbólicos:
find -L -samefile xaa -exec ls -li {} \;
Usar -exec ls
aqui em vez de -ls
mostra o proprietário, o grupo, as permissões e o destino dos próprios links simbólicos em vez das informações do destino.