Ich versuche, die Anzahl der Dateien in meinem /tmp/
Verzeichnis zu überwachen . Dafür dachte ich, dass dieser Befehl funktionieren würde:
watch sh -c 'ls /tmp/|wc -l'
Aber es scheint zu funktionieren, als ob ls
es keine Argumente gäbe . Ich bin nämlich dabei ~
und erhalte stattdessen die Anzahl der Dateien /tmp/
. Ich habe eine Problemumgehung gefunden, die zu funktionieren scheint:
watch sh -c 'ls\ /tmp/|wc -l'
Aber warum muss ich dem Raum zwischen ls
und entfliehen /tmp/
? Wie wird der Befehl von transformiert, watch
sodass die ls
Ausgabe an geleitet wc
, aber /tmp/
nicht als Argument an übergeben wird ls
?
watch
falsch. Der Befehl, an den Sie übergeben werden, watch
wird wiederum watch
an weitergeleitet sh -c
, sodass Sie tatsächlich sh -c
zweimal vorgehen .
/tmp
ist ein Argument dafür sh
, in diesem Fall kein Argument dafür ls
.
watch "sh -c 'ls /tmp | wc -l'"
Das Ausführen dieses Befehls sollte den gewünschten Effekt erzielen. Dies ist kein Uhrenfehler, versuchensh -c ls /tmp
Sie es und Sie erhalten Ihr Home-Verzeichnis (aber ich habe keine Ahnung warum ...)