为了账号安全,请及时绑定邮箱和手机立即绑定

文件或目录更改时如何运行Shell脚本?

/ 猿问

文件或目录更改时如何运行Shell脚本?

慕的地2183247 2019-11-27 11:10:05

我想在特定文件或目录更改时运行Shell脚本。

我如何轻松做到这一点?


查看完整描述

3 回答

?
BIG阳

使用inotify-tools。


查看完整回答
反对 回复 2019-11-27
?
繁星淼淼

我使用此脚本在目录树中的更改上运行构建脚本:


#!/bin/bash -eu

DIRECTORY_TO_OBSERVE="js"      # might want to change this

function block_for_change {

  inotifywait --recursive \

    --event modify,move,create,delete \

    $DIRECTORY_TO_OBSERVE

}

BUILD_SCRIPT=build.sh          # might want to change this too

function build {

  bash $BUILD_SCRIPT

}

build

while block_for_change; do

  build

done

用途inotify-tools。查看inotifywait 手册页,了解如何自定义触发构建的内容。


查看完整回答
反对 回复 2019-11-27
?
三国纷争

您可以尝试entr在文件更改时运行任意命令的工具。文件示例:


$ ls -d * | entr sh -c 'make && make test'

要么:


$ ls *.css *.html | entr reload-browser Firefox

或Changed!在file.txt保存文件时打印:


$ echo file.txt | entr echo Changed!

对于目录,请使用-d,但您必须在循环中使用它,例如:


while true; do find path/ | entr -d echo Changed; done

要么:


while true; do ls path/* | entr -pd echo Changed; done


查看完整回答
反对 回复 2019-11-27

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信