监视文件夹中新文件的 Shell 脚本

use*_*207 2 unix shell command cmd

我不是 shell 脚本编写方面的专家,这就是我在这里问的原因:)。

假设我有一个文件夹。我需要一个脚本来监视该文件夹中的新文件(没有给出文件的前缀名称)。当一个新文件被复制到该文件夹​​中时,另一个脚本应该启动。第二个脚本已成功处理该文件,则应删除该文件。

我希望你能给我一些关于如何实现这样的脚本的想法:)

预先非常感谢您。托马斯

dav*_*vvs 5

尝试这个:

观察者.sh:

#!/bin/bash
if [ -z $1 ];
then
    echo "You need to specify a dir as argument."
    echo "Usage:"
    echo "$0 <dir>"
    exit 1
fi

while true;
do
    for a in $(ls -1 $1/* 2>/dev/null);
    do
        otherscript $a && rm $a #calls otherscript with the file a as argument and removes it if otherscript returned something non-zero
    done
    sleep 2s
done
Run Code Online (Sandbox Code Playgroud)

不要忘记使其可执行

chmod +x ./watcher.sh
Run Code Online (Sandbox Code Playgroud)

调用它:

./watcher.sh <dirname>
Run Code Online (Sandbox Code Playgroud)