Perl seria um exagero aqui.
find . -maxdepth 1 -mindepth 1 | wc -l
(use melhor grep -c /
em vez de wc -l
no caso de alguns nomes de arquivos possuírem caracteres de nova linha).
Ou com o GNU ls
:
ls -A | wc -l
com zsh
:
f=(*(D))
echo $#f
Para remover um:
... | tail -n +2 | wc -l
Ou:
n=$(... | wc -l); echo "$(($n - 1))"
Com o perl, você pode usar o sinalizador -n
ou -p
:
... | perl -lpe '--$_'
Acima, a expressão --$_
é avaliada e o conteúdo da variável $_
é impresso para cada linha de entrada.