![有没有办法让 ls 监听更改并更新类似于 tail -f 的输出?](https://linux22.com/image/146104/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E8%AE%A9%20ls%20%E7%9B%91%E5%90%AC%E6%9B%B4%E6%94%B9%E5%B9%B6%E6%9B%B4%E6%96%B0%E7%B1%BB%E4%BC%BC%E4%BA%8E%20tail%20-f%20%E7%9A%84%E8%BE%93%E5%87%BA%EF%BC%9F.png)
我有一个在已知目录中创建许多文件的过程,而判断其进度的唯一方法是手动键入ls
。有没有一种方法可以ls
在创建新文件时自动更新更新的输出,类似于tail -f
工作原理?由于它们的名称,每个新文件都会出现在列表的末尾,因此我不必担心它们出现在中间。
答案1
您可以使用如下命令:
watch ls
循环执行ls
命令
如果列表太长,您可以添加-C
到ls
watch ls -C
或者您可以使用以下命令创建显式循环while
while [ 1 ]
do
clear
ls
sleep 60
done
答案2
您可以使用这样的脚本来监视每个更改,并在任何更改之后它会生成一个LS按日期排序。为了能够执行它,你需要inotify 工具安装。该脚本如下:
#!/bin/bash
DIRECTORY="your_directory_path"
inotifywait -m -r -e create --format '%w%f' "${DIRECTORY}" | while read NEW
do
ls -hltr
done