是否有任何内置的 Linux 命令可以实时显示目录的内容?

是否有任何内置的 Linux 命令可以实时显示目录的内容?

是否有任何内置的Linux命令可以实时显示目录的内容?类似于“tail -f file_name”命令,可以实时显示文件的内容。

答案1

你可以使用 来实现watch。它不是完全实时的,但已经足够接近实时了(最多十分之一秒):

watch -n0.1 ls

来自手册:

-n, --interval seconds
          Specify update interval.  The command will not allow quicker than 0.1 second interval, in which the smaller values are converted.

答案2

我写了这个,希望这是你需要的。它不是built-in Linux command,但它只使用大多数 UNIX 机器中存在的常见程序。

根据需要调整sleep时间。我会使用至少 2 秒的值。用于cmd="ls"非递归结构或cmd="find DIRNAME"递归搜索。请注意,在最后一种情况下,您将获得DIRNAME/所有文件和目录的前缀。

 echo "" | awk '{while ( 1 ) {cmd="find ."; delete b;c=0; while ( ( cmd | getline result ) > 0 ) {test=1;c++;n=0;for (i in a) {n++;if (a[i]==result) {b[c]=i; test=0; break;}} if (test) {n++;a[n]=result;b[c]=n;print "##NEW## "result }} close (cmd); for (i in a) {test=1;for (j in b) {if (b[j]==i) {test=0;break}} if (test) {print "##DELETED## "a[i]; delete a[i]}} system("sleep 5") } }'

答案3

我知道之后才知道这太简单了。

watch -d dir_name

答案4

您可以使用inotifytools其命令行实用程序。

您可以使用inotify它来监视目录,它将返回目录本身以及目录内的文件的事件。

另一个可以使用的工具是inotifywatch

sudo inotifywatch -v -r /foo

您可以添加-rfor 以递归方式监视所有子目录。但是这个解决方案不检测新创建文件的更改

因此另一个解决方案是使用inotifywait

inotifywait -m --format "%f" /foo

test*下面是显示所有新创建文件内容的另一个示例/tmp

inotifywait -m --format "%f" /tmp | grep --line-buffered ^test | xargs -L1 -I% sudo cat /tmp/% 2> /dev/null

相关内容