ls -l *.txt | wc -l | tee count.txt
No primeiro exemplo:
O comando ls lista todos os arquivos no diretório atual que possuem a extensão de nome de arquivo .txt , um arquivo por linha; essa saída é canalizada para wc , que conta as linhas e gera o número; essa saída é canalizada para tee , que grava a saída no terminal e grava as mesmas informações no arquivo count.txt . Se count.txt já existir, ele será sobrescrito.
No seu segundo exemplo:
ls -l *.txt | wc -l > tee count.txt
Neste exemplo, tee será tratado como nome do arquivo em vez de um comando e a saída de wc -l será redirecionada para o arquivo recém-criado tee e conterá a saída de wc -l e string count.txt .
Se você quiser o mesmo comportamento que no primeiro exemplo, a maneira correta de fazer isso seria:
ls -l *.txt | wc -l > count.txt
> em si é suficiente para redirecionar a saída para count.txt file