尾状连续ls(文件列表)
问题:尾状连续ls(文件列表) 我正在监视在 linux 的文件夹中创建的新文件。我时不时地在其中发出一个“ls -ltr”。但我希望有一个程序/脚本可以自动打印它,并且只有最新的条目。我做了一个短暂的while循环来列出它,但它会重复那些不是新的条目,并且当没有新文件时它会保持我的屏幕滚动。我已经了解了“watch”,它确实显示了我想要的内容并每 N 秒刷新一次,但我不想要一个 ncurses
·
问题:尾状连续ls(文件列表)
我正在监视在 linux 的文件夹中创建的新文件。我时不时地在其中发出一个“ls -ltr”。但我希望有一个程序/脚本可以自动打印它,并且只有最新的条目。我做了一个短暂的while循环来列出它,但它会重复那些不是新的条目,并且当没有新文件时它会保持我的屏幕滚动。我已经了解了“watch”,它确实显示了我想要的内容并每 N 秒刷新一次,但我不想要一个 ncurses 界面,我正在寻找类似尾巴的东西:
-
连续
-
只显示新的东西
-
在我的终端打印,所以我可以在后台运行它并做其他事情,并时不时地查看输出,然后与我正在做的任何事情混合:D
总结:获取输入,与之前的输入进行比较,只输出新的。这样做的东西听起来不像是一个奇怪的工具,我可以看到它也被用于其他情况,所以我希望它已经存在,但我找不到任何东西。建议?
解答
如果您可以访问inotifywait
(如果您在 Debian/Ubuntu 上,可以从 inotify-tools 包中获得),您可以编写如下脚本:
#!/bin/bash
WATCH=/tmp
inotifywait -q -m -e create --format %f $WATCH | while read event
do
ls -ltr $WATCH/$event
done
这是一个单行程序,不会为您提供与ls
相同的信息,但它会打印出文件名:
inotifywait -q -m -e create --format %w%f /some/directory
更多推荐
已为社区贡献12906条内容
所有评论(0)