watch命令不适用于使用管道的命令

问题描述 投票:0回答:2

非常简单/快速的问题,为什么此命令不起作用?

watch ls *.log | wc -l

watch -d ls *.log | wc -l

我正在尝试[[watch更新当前目录中的文件总数。

bash watch ls wc
2个回答
1
投票
[如果您想通过管道传递命令并观看它,请在其周围加上引号,例如:

watch "ls | wc -l"


0
投票
尽管这里的问题显然是引号,但是您绝对不要解析命令ls。计数目录中文件数量的标准方法是:

find /path/to/dir -maxdepth=1 -type f -printf "c" | wc -c

这避免了有趣的名称可能包含换行符的问题。

OP的解决方案将显示为:

watch "find . -maxdepth=1 -type f -printf "c" | wc -c"

© www.soinside.com 2019 - 2024. All rights reserved.