Use o comando "watch":
watch ls
Isso executará o comando "ls" a cada 2 segundos.
Eu gostaria de monitorar os arquivos que estão sendo baixados para um diretório em tempo real na tela no bash.
Existe uma maneira fácil no Linux de fazer o equivalente a tail -f
, mas em um diretório, talvez usando ls?
watch
é definitivamente a melhor resposta se você a tiver. Mas para completar, você pode simular algo grosseiramente similar com um simples script de shell:
while (true)
do
date
ls -lrt | tail -n 10
sleep 2
clear
done
Outra maneira seria usar diff
. Este também indicará se os arquivos foram removidos que costumavam estar presentes. Uma vantagem é que ele não limpa o terminal, portanto, você pode ver o registro completo de todas as alterações rolando para cima. Uma desvantagem é que ele cria dois arquivos temporários para gerenciar o raciocínio de mudança de estado.
ls1="/tmp/listing1.dat"
ls2="/tmp/listing2.dat"
ls -lrt > ${ls1}
ls -lrt > ${ls2}
while (true)
do
diff ${ls1} ${ls2} | grep '[<>]'
sleep 2
cp ${ls2} ${ls1}
ls -lrt > ${ls2}
done
Confira inotifywait
,
por exemplo, para monitorar a pasta abc
, você poderia fazer:
while inotifywait -e close_write abc; do
# do 'ls' when abc changed
ls abc
done