根据文件名上的 grep 获取到最新文件的自动更新符号链接

Posted

技术标签:

【中文标题】根据文件名上的 grep 获取到最新文件的自动更新符号链接【英文标题】:Get an auto updated symbolic link to the latest file, based on grep on file name 【发布时间】:2020-04-11 19:06:22 【问题描述】:

所以稍微调整一下this SO answer 就非常接近解决方案了:

ln -s target-directory/`ls -rt target-directory | grep .log | tail -n1` latest

但是当目录中出现新文件时,我如何才能真正持续更新符号链接?

可以使用inotifywait 存档吗?我怎么能在我的系统上安装这样一个在后台处理的作业?

【问题讨论】:

【参考方案1】:

请注意,解析ls 输出可能容易出错。见bash FAQ 99。

如果inotifywait 工具可用,您可以执行诸如更新符号链接之类的操作。

#!/bin/bash

function newest_log

    files=(*.log)
    newest=$files[0]
    for f in "$files[@]"; do
        if [[ $f -nt $newest ]]; then
            newest=$f
      fi
    done

    echo $newest


while inotifywait -e modify target-directory; do
    ln -s target-directory/$(newest_log) latest
done

您可以直接运行此脚本,也可以设置类似 systemd 服务的服务。

【讨论】:

这很完美 - 谢谢!我使用 supervisord 自动化了系统启动和活动检查。

以上是关于根据文件名上的 grep 获取到最新文件的自动更新符号链接的主要内容,如果未能解决你的问题,请参考以下文章

如何禁止苹果手机ios系统自动更新

onenote2016 如何查看 最新更新

grep 最新文件字符串

iOS自动检测版本更新

iOS自动检测版本更新

具有从文件夹中的最新文件自动更新图像的网站