在文件夹中添加新文件时执行命令

在文件夹中添加新文件时执行命令

我不确定这是否可行。我正在寻找一个脚本/命令,当我将文件添加到文件夹中时,它将执行命令或运行脚本。

例如:

我正在练习编写 bash 脚本。编写 bash 脚本后,我必须使用此命令将脚本文件设为可执行文件chmod +x filename.sh。我的所有脚本都存储在名为 BASH 的文件夹中。因此,当我 .sh在该文件夹中添加新文件时,我希望运行命令/脚本以使我的.sh文件可执行。

怎么做?

答案1

您可以使用inotifywait。要应用于chmod +x目录 BASH 中写入的每个文件,请保持以下脚本运行:

#!/bin/bash
dir=BASH
inotifywait -m "$dir" -e close_write --format '%w%f' |
    while IFS=' ' read -r fname
    do
        [ -f "$fname" ] && chmod +x "$fname"
    done

如果您很好奇,您可以inotifywait通过运行以下命令来查看目录 bash 中发生的所有事情:

inotifywait -m BASH

有关详细信息,请参阅man inotifywait

要使用inotifywait,您可能首先需要安装inotify-tools:运行apt-get install inotify-tools

相关内容