监视目录并在创建时更改文件的所有权

时间:2013-07-11 01:26:43

标签: bash sed while-loop chown inotifywait

我尝试过这种方法,但它不起作用......

inotifywait -mr -e create /opt/freeswitch/storage/ 2>&-| sed 's/ CREATE //g' |
    while read file; do
    chown apache.apache $file
    done

从命令行

inotifywait -mr -e create /opt/freeswitch/storage/ 2>&-| sed 's/ CREATE //g'

使用文件的完整路径给出了我需要的确切输出,但是当我尝试将sed输出到文件或管道输出到其他东西时它停止工作。

有人能指出我在正确的方向吗?

1 个答案:

答案 0 :(得分:2)

默认情况下,sed在写入管道时缓冲其输出。使用-u选项取消缓冲。

inotifywait -mr -e create /opt/freeswitch/storage/ 2>&-| sed -u 's/ CREATE //g' |
    while read file; do
    chown apache.apache $file
    done