Estou tentando assistir o número de arquivos no meu /tmp/diretório. Por isso, pensei que este comando funcionaria:
watch sh -c 'ls /tmp/|wc -l'
Mas parece funcionar como se lsnão tivesse argumentos. Ou seja, estou dentro ~e recebo o número de arquivos lá em vez de /tmp/. Encontrei uma solução alternativa, que parece funcionar:
watch sh -c 'ls\ /tmp/|wc -l'
Mas por que preciso escapar do espaço entre lse /tmp/? Como o comando é transformado watchpara que a lssaída seja alimentada wc, mas /tmp/não seja passada como argumento para ls?
watchincorretamente .O comando que você passa para watchpor sua vez é alimentada por watchque sh -c, então você está na verdade fazendo sh -cduas vezes.
/tmpargumento é sh, nesse caso, não o argumento ls.
watch "sh -c 'ls /tmp | wc -l'"esse comando deve ter o efeito desejado. Isto não é relógios culpa, tentativash -c ls /tmpe você vai ter a sua pasta pessoal (mas não tenho idéia do porquê ...)