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

Ibr*_*him 6 bash executable

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

例如:

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

怎么做?

Joh*_*024 6

您可以使用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
Run Code Online (Sandbox Code Playgroud)

如果您好奇,您可以inotifywait通过运行以下命令查看所有可以说明目录 bash 中发生的情况的信息:

inotifywait -m BASH
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅man inotifywait

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