J'essaie de regarder le nombre de fichiers dans mon /tmp/
répertoire. Pour cela, je pensais que cette commande fonctionnerait:
watch sh -c 'ls /tmp/|wc -l'
Mais cela semble fonctionner comme s'il ls
n'avait pas d'arguments. A savoir, je suis ~
dedans, et j'y reçois un certain nombre de fichiers au lieu de /tmp/
. J'ai trouvé une solution de contournement, qui semble fonctionner:
watch sh -c 'ls\ /tmp/|wc -l'
Mais pourquoi dois-je échapper à l'espace entre ls
et /tmp/
? Comment la commande est-elle transformée par watch
afin que la ls
sortie soit alimentée wc
, mais /tmp/
ne soit pas passée en argument ls
?
watch
correctement .La commande que vous passez à watch
est à son tour alimenté par watch
de sh -c
, vous êtes en effet faire sh -c
deux fois.
/tmp
est un argument pour sh
, dans ce cas, pas un argument pour ls
.
watch "sh -c 'ls /tmp | wc -l'"
l'exécution de cette commande devrait obtenir l'effet souhaité. Ce n'est pas la faute des montres, essayezsh -c ls /tmp
et vous obtiendrez votre répertoire personnel (mais je ne sais pas pourquoi ...)