À primeira vista , ele conta o número de arquivos em um diretório ( ls
lista arquivos, wc -l
conta-os).
Mas espere . Tente isto:
> mkdir test
> touch test/magic$'\n'newlines
> ls test | wc -l
2
O resultado do padrão POSIX permite novas linhas em nomes de arquivos. Devido a esse e outros casos de borda, o método geral para contar o número de arquivos em um diretório é muito mais complicado .
Houve uma vez uma conversa sobre adicionar um --zero
flag a ls
para permitir que tais monstruosidades fossem divididas (o caractere nulo é ilegal em nomes de arquivos POSIX), mas nunca se materializou devido à resistência de o coreutils
devs .
Fazer ls | wc -l
provavelmente é seguro para uma verificação casual, mas não confie nela quando precisar de código compatível com os padrões.