OK, nesse caso, talvez
for i in /tmp/**; do
[[ -f "$i" ]] &&
(( $(stat -c %h "$i") > 1 )) &&
stat -c '%i %n' "$i"
done | sort -V
Notas
-
for i in *
para cada arquivo no diretório atual -
[[ -f "$i" ]] &&
se for um arquivo normal e -
(( $(stat -c %h "$i") > 1 ))
se tiver mais de um link físico -
stat -c '%i %n'
imprime seu número e nome de inode -
| sort -V
e classifica essa saída "naturalmente"
Você pode substituir *
pelo caminho dos arquivos, por exemplo, /tmp/*
, o que fará com que o caminho completo seja impresso. Se você quiser pesquisar recursivamente, use shopt -s globstar
e, em seguida, **
no caminho, por exemplo /tmp/**
find
tem um teste de -links
, mas parece ter apenas um inteiro você terá que ler Resposta da Ravexina para uma solução que a utilize.