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 lsn'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 lset /tmp/? Comment la commande est-elle transformée par watchafin que la lssortie soit alimentée wc, mais /tmp/ne soit pas passée en argument ls?
watchcorrectement .La commande que vous passez à watchest à son tour alimenté par watchde sh -c, vous êtes en effet faire sh -cdeux fois.
/tmpest 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 /tmpet vous obtiendrez votre répertoire personnel (mais je ne sais pas pourquoi ...)