有没有办法让 ls 监听更改并更新类似于 tail -f 的输出?

Dan*_*ott 2 ls terminal

我有一个在已知目录中创建许多文件的过程,唯一的方法是ls手动输入。有没有办法ls在创建新文件时自动更新输出,类似于tail -f工作原理?由于它们的名字,每个新文件都会出现在列表的末尾,所以我不必担心它们会出现在中间。

Rom*_*nov 11

您可以使用以下命令:

watch ls
Run Code Online (Sandbox Code Playgroud)

循环执行ls命令

如果列表太长,您可以添加-Cls

watch ls -C
Run Code Online (Sandbox Code Playgroud)

或者您可以创建显式循环 while

while [ 1 ]
 do
  clear
  ls
  sleep 60
done
Run Code Online (Sandbox Code Playgroud)

  • 由于您想观看进度,因此可以使用`watch 'ls -ltr | 之类的东西。tail'` 可能最适合。请注意引号,以便 shell 不会解释 `|`。 (2认同)

Das*_*sel 8

您可以使用这样的脚本来监视每个更改,并在任何更改后生成按日期排序的ls。为了能够执行它,您需要安装inotify-tools。脚本如下:

#!/bin/bash
DIRECTORY="your_directory_path"
inotifywait -m -r -e create --format '%w%f' "${DIRECTORY}" | while read NEW
do
        ls -hltr
done
Run Code Online (Sandbox Code Playgroud)