Listar todos os arquivos com o mesmo número de inode?

53

Digamos que, quando eu faço ls -lidentro de um diretório, recebo o seguinte:

12353538 -rw-r--r-- 6 me me 1650 2013-01-10 16:33 fun.txt

Como mostra a saída, o arquivo fun.txt possui 6 links físicos ; e o número do inode é 12353538 .

Dado o caso, como encontro todos os links físicos para o arquivo, ou seja, arquivos com o mesmo número de inode?

wsou eu
fonte

Respostas:

56
find /mount/point -samefile /mount/point/your/file
Hauke ​​Laging
fonte
3
@TheoneManis Acabei de notar que as outras partes da chamada de localização não são necessárias. findé inteligente o suficiente para usá-los implicitamente. Normalmente, você deve fornecer findum caminho de pesquisa e informar que não deve deixar esses sistemas de arquivos (via links simbólicos ou pontos de montagem). Mas, ao procurar links físicos, fica claro em qual sistema de arquivos procurar.
Hauke Laging
6
Hauke, isso depende da versão do achado que você está usando. A versão GNU pode fazer isso, mas a versão BSD não, e isso não funcionará como está no Mac.
Alan Shutko
3
Você pode adicionar -xdevpara evitar a descida para diretórios em outros sistemas de arquivos, caso contrário, poderá encontrar outro arquivo com o mesmo número de inode localizado em outro sistema de arquivos.
mmoya
O equivalente quase -samefileno HP-UX é -linkedto(embora seja um pouco diferente: um caminho de pesquisa ainda deve ser especificado, por exemplo).
Nick
3
Observe que, se você não estiver na raiz do seu ponto de montagem, o find irá explorar apenas as subpastas da pasta atual. Então você deve realmente dizer algo comofind /mount/point -samefile /mount/point/your/file
Calimo
52

Se você já possui o número do inode, pode usar a -inumopção find :

find -inum 12353538
scai
fonte
11
Não se esqueça de cd para a raiz do sistema de arquivos ou especifique-o como um caminho para encontrar, como find /mount/point -inum 12353538. Caso contrário, o find aparecerá apenas abaixo da pasta atual.
Calimo #