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
: ativarnullglob
para esse glob (expandir para nada quando não houver correspondência) -
D
: ativardotglob
para 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
.