Estoy tratando de ver el número de archivos en mi /tmp/directorio. Para esto pensé que este comando funcionaría:
watch sh -c 'ls /tmp/|wc -l'
Pero parece funcionar como si lsno tuviera argumentos. A saber, estoy dentro ~, y obtengo el número de archivos allí en lugar de /tmp/. Encontré una solución, que parece funcionar:
watch sh -c 'ls\ /tmp/|wc -l'
Pero, ¿por qué necesito escapar del espacio entre lsy /tmp/? ¿Cómo se transforma el comando watchpara que la lssalida se alimente wc, pero /tmp/no se pase como argumento ls?
watchde forma incorrecta .El comando que se pasa a watchsu vez es alimentado por watcha sh -c, por lo que está haciendo en efecto sh -cdos veces.
/tmpes un argumento para sh, en ese caso, no un argumento para ls.
watch "sh -c 'ls /tmp | wc -l'"hacer este comando debería obtener el efecto deseado. Esto no es culpa de los relojes, intentesh -c ls /tmpy obtendrá su directorio de inicio (pero no tengo idea de por qué ...)