Este manual indica que modify é acionado quando um arquivo é gravado. Você provavelmente deseja monitorar os eventos create , delete e move .
Verifique se esta resposta mais elaborada a uma pergunta semelhante . Há nohup comando mencionado lá. Outro comando útil pode ser disown .
Acho que o loop inotifywait pode perder um evento quando ocorre durante a execução de ls (porque não há inotifywait em execução neste exato momento). Existem opções -m e -d , elas não devem perder nada. Essa abordagem deve ser um pouco mais confiável:
inotifywait -me create,delete,move path-of-directory | while read a ; do ls > path-of-text-file; done
Agora, inotifywait -m funciona o tempo todo e gera uma linha de texto por evento capturado. Então, cada uma dessas linhas faz com que ls seja executado.
Outra solução será iwatch e seu daemon. Claro que configurar um daemon requer acesso root. Leia minha resposta a outra pergunta e ajuste-a às suas necessidades.
Além disso, você pode estar interessado em LoggedFS - Monitoramento do sistema de arquivos com o FUSE .