Sua mensagem de erro lista de argumentos por muito tempo vem do * de ls *.txt
.
Esse limite é uma segurança para os programas binários e seu kernel. Você verá em esta página mais informações sobre o assunto e como ele é usado e computado.
Não existe tal limite no tamanho do tubo. Então você pode simplesmente emitir este comando:
find -type f -name '*.txt' | wc -l
NB: No Linux moderno, caracteres estranhos em nomes de arquivos (como novas linhas) serão ignorados com ferramentas como ls
ou find
, mas ainda exibidos de * . Se você está em um Unix antigo, você precisará deste comando
find -type f -name '*.txt' -exec echo \; | wc -l
NB2: Eu queria saber como se pode criar um arquivo com uma nova linha em seu nome. Não é tão difícil assim que você souber o truque:
touch "hello
world"