Você está procurando inotifywait
, parte de inotify-tools . Existem alguns exemplos de como usá-lo no site do projeto, mas uma abordagem simples é,
while true; do inotifywait code.cpp -e modify; make; done
a parte principal da qual é,
inotifywait code.cpp -e modify
Esse comando aguardará até que code.cpp
seja modificado e saia. Coloque no loop infinito e seguido com make
faz com que ele seja reconstruído constantemente após cada modificação.
Além de aguardar modificações, você pode esperar pela criação, exclusão, acesso, abertura, fechamento e muito mais. Eu recomendo ver os exemplos de projetos e inotifywait página de manual para algumas outras idéias sobre como ele pode ser usado.