Dependendo da sua implementação / versão de watch
, pode não iniciar um shell para interpretar uma linha de comando, mas, em vez disso, executa um comando que aceita como argumento os argumentos recebidos. Então, nesse caso, se você precisar executar uma linha de comando do shell, precisará iniciar um shell explicitamente como em:
watch sh -c 'find . | wc -l'
Veja também o comando inotifywait -rm .
(se no Linux) para monitorar a atividade em um diretório.
Observe também que find . | wc -l
retorna apenas o número de arquivos (excluindo as entradas ..
) se os nomes dos arquivos não contiverem caracteres de nova linha. Se isso pode ser um problema, você poderia fazer:
find .//. | grep -c //
Observe também que não há nenhum utilitário GNU ou Unix com o nome watch
. Há um comando watch
no conjunto de ferramentas procps
para o Linux, há uma implementação de watch
no busybox. Em BSDs, watch
faz algo completamente diferente. watch
não é um comando padrão (em nenhuma das especificações POSIX, Unix ou LSB).