Estou procurando uma ferramenta CLI que assista a um diretório e cuspa os nomes dos arquivos que mudam em tempo real.
some_watch_command /path/to/some/folder | xargs some_callback
Estou ciente de inotify
( inotify-tools
?) E parece ser o que preciso, mas preciso de algo que seja compatível com Linux (no meu caso, Ubuntu) e OSX.
Ele não precisa ser muito rápido, mas é necessário acionar alterações (dentro de um segundo é razoável). Além disso, não preciso necessariamente do programa CLI exato mencionado acima. Se alguma tecnologia subjacente existir e for facilmente programável em ambas as plataformas, isso também seria ótimo.
fswatch
do OS X, que eu encontrei em uma pergunta que foi marcada como duplicada - superuser.com/questions/445907/…Respostas:
O OS X normalmente usaria Ações de Pasta ou Iniciado para esta tarefa.
A única ferramenta de plataforma cruzada que conheço é a API de vigilância para Python (disponível para OS X e Linux). Instale-o através
pip
(oueasy_install
)Ele vem com a
watchmedo
ferramenta de linha de comando, que permite executar comandos do shell nos eventos do sistema. Verifique sua sintaxe geral comwatchmedo --help
Aqui está um pequeno exemplo, onde você pode modificar facilmente o comando e o caminho destacado em negrito:
Isso simplesmente cuspiria os caminhos para todos os arquivos ou pastas alterados, permitindo que você canalize
watchmedo
a saída para outro comando do shell.fonte
watchmedo
estão funcionando perfeitamente para mim. Obrigado!Alterei alguns scripts Ruby que encontrei para fazer exatamente o que você está procurando. Aqui está o código Ruby:
Chamei esse script de "OnSaveFolder.rb". São necessários dois parâmetros: a pasta que você deseja observar quanto a alterações e o código bash que você deseja executar quando houver uma alteração. Por exemplo,
Eu espero que isso ajude! Descobri que o ruby funciona muito bem para esse tipo de coisa e está instalado no OS X por padrão.
fonte
Você pode colocar
lsof
umwatch
comando e atualizá-lo a cada<s>
segundo:e inicie isso com qualquer filtro, como assistir pid1, pid2, pid3 e ignorar pid4
Se isso não for suficiente, você sempre pode escrever seus próprios filtros com grep.
Para o OS X, consulte as respostas desta pergunta .
fonte
entr é legal. Você pode filtrar os arquivos exatos que deseja assistir, assim.
Se você deseja monitorar apenas certos arquivos dentro de um diretório, você pode criar seu
find
comando para que ele retorne apenas os arquivos que deseja assistir.Acho mais fácil configurar do que
fswatch
.fonte