inotifywait comando alternativo para Mac?

4

Algo como

$ macwatch dir_or_file cmd_to_execude_when_arg1_is_changed

durante o qual não preciso escrever XML. Estou ciente do link . Pode ser um wrapper para launchd - eu só quero poder inserir o comando acima.

    
por Loren 24.12.2011 / 22:54

1 resposta

5

A pergunta do StackOverflow que você citou foi adicionada a outra resposta - há o utilitário fswatch ali mesmo no Homebrew.

Observe que o comando fswatch é mais parecido com inotifywatch , não inotifywait . Significa que, em vez de apenas uma vez esperar por alterações de arquivo e, em seguida, sair, ele insere um loop infinito, imprimindo os arquivos alterados - para que você possa capturar as alterações com um pipe Unix. Então seu roteiro seria "de dentro para fora", digamos.

Por exemplo, no Linux, eu geralmente tenho um oneliner que executa meu comando em alterações de arquivo usando inotifywait :

while true; do inotifywait -q -e modify files... ; my_command; done

Enquanto para fswatch ter o mesmo efeito, preciso:

fswatch files... | (while read; do my_command; done)

O texto acima assume que você não precisa de arquivos alterados como argumentos para o seu comando. Se isso acontecer você precisa deles, seria assim:

fswatch files... | (while read x; do echo $x | xargs my_command; done)

Espero que isso ajude:)

felicidades

    
por 11.07.2014 / 11:43