gpt4 book ai didi

linux - 跟踪最后修改的文件并监视 bash 中的新文件

转载 作者:太空狗 更新时间:2023-10-29 12:01:07 25 4
gpt4 key购买 nike

我可以使用 ls --sort=time | tail -f 最后修改的文件头-1 | xargs tail -f 但我正在寻找能够连续运行第一部分的东西,即如果在运行 tail 命令时创建了新文件,它会切换到拖尾新文件。我考虑过使用 watch 命令,但它似乎不能很好地与 tail -f

一起使用

最佳答案

看来你需要这样的东西:

#!/bin/bash

TAILPID=0
WATCHFILE=""

trap 'kill $(jobs -p)' EXIT # Makes sure we clean our mess (background processes) on exit

while true
do
NEWFILE=`ls --sort=time | head -n 1`
if [ "$NEWFILE" != "$WATCHFILE" ]; then

echo "New file has been modified"
echo "Now watching: $NEWFILE";
WATCHFILE=$NEWFILE
if [ $TAILPID -ne 0 ]; then
# Kill old tail
kill $TAILPID
wait $! &> /dev/null # supress "Terminated" message
fi
tail -f $NEWFILE &
TAILPID=$! # Storing tail PID so we could kill it later
fi
sleep 1
done

关于linux - 跟踪最后修改的文件并监视 bash 中的新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com