是否可以遵循命令(重复运行)?就像使用 tail -f 跟踪一个文件一样?

是否可以遵循命令(重复运行)?就像使用 tail -f 跟踪一个文件一样?

我有一个生成文件“Detail.out”的脚本。我知道只要文件包含一定数量的行(大约 21025 行),脚本就会完成。所以我发现自己坐在命令提示符下运行:

[me@somewhere myDir]$ wc -l */Detail.out
  21025 A/Detail.out
  21025 B/Detail.out
  21025 C/Detail.out
  12995 D/Detail.out
  10652 E/Detail.out
   3481 F/Detail.out
  21027 G/Detail.out
  21025 H/Detail.out
  21025 I/Detail.out
  ...   ...

我曾经tail -f观看特定文件,但我想跟踪wc -l */Detail.out上面显示的命令的输出。 这可能吗? 如果这很重要的话,我目前正在使用tcshUbuntu 11.04。

答案1

尝试一下这个watch命令,尽管我怀疑几乎每个人都曾经编写过自己的版本。 (便宜的版本是while :; do clear; "$@"; sleep 5; done。)

答案2

不确定您是否知道这一点,但您也可以将程序的输出重定向到文件。看http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html因此,另一种方法可能是将输出简单地重定向到一个文件,然后像您已经习惯的那样对该文件使用 tail 。

$ find . -name "Detail.out" | xargs wc -l >> detail-out-list.txt

在另一个终端中,您可以$ tail -f detail-out-list.txt按照习惯运行。

正如 Celeb 指出的那样,留下一些文件可能是您想要的(进一步检查该文件或有一些历史记录),也没有任何东西会像watch为您那样定期执行。

相关内容