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 ls
no 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 ls
y /tmp/
? ¿Cómo se transforma el comando watch
para que la ls
salida se alimente wc
, pero /tmp/
no se pase como argumento ls
?
watch
de forma incorrecta .El comando que se pasa a watch
su vez es alimentado por watch
a sh -c
, por lo que está haciendo en efecto sh -c
dos veces.
/tmp
es 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 /tmp
y obtendrá su directorio de inicio (pero no tengo idea de por qué ...)