com zsh :
(){echo $#} *(NDl+1^/)
Note que não conta . nem .. . Se você não quiser contar diretórios (que, na maioria dos sistemas de arquivos, são sempre links físicos), mude para *(NDl+1) .
-
(){echo $#}função anônima que gera seu número de argumentos -
*(...)glob com qualificadores glob -
N: ativarnullglobpara esse glob (expandir para nada quando não houver correspondência) -
D: ativardotglobpara esse glob (inclui arquivos ocultos, mas nunca.nem..) -
l+1: selecione arquivos com um número de links estritamente maior que 1.
Equivalente POSIX:
find .//. ! -name . -prune -links +1 | grep -c //
(adicione um ! -type d após -prune para excluir diretórios).
Ou com ls :
(export LC_ALL=C; ls -Aqn | awk 'NR > 1 && $2 > 1 {n++}; END {print n}')
Para excluir diretórios, adicione && $1 !~ /^d/ após $2 > 1 .