Executar um comando quando adicionar um novo arquivo na pasta

3

Não tenho certeza se é possível ou não. Eu estou procurando um script / comando que irá executar um comando ou executar um scripts quando vou adicionar um arquivo em uma pasta.

Por exemplo:

Estou praticando scripts de bash. Depois de escrever um script bash, eu tenho que fazer o meu arquivo de script para um executável usando este comando chmod +x filename.sh . Todos os meus scripts foram armazenados em uma pasta chamada BASH. Então, quando eu adiciono um novo arquivo .sh nessa pasta, eu quero que um comando / script seja executado, o que tornará meu arquivo .sh executável.

Como fazer isso?

    
por Ibrahim 05.05.2014 / 08:05

1 resposta

3

Você pode usar inotifywait . Para aplicar chmod +x a todos os arquivos gravados no diretório BASH, mantenha o seguinte script em execução:

#!/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

Se você está curioso, você pode ver tudo o que o inotifywait pode dizer sobre o que está acontecendo no diretório bash executando:

inotifywait -m BASH

Para mais informações, consulte man inotifywait .

Para usar inotifywait , primeiro você precisa instalar o inotify-tools : run apt-get install inotify-tools .

    
por John1024 05.05.2014 / 09:19