중복 가능성:
명령을 따르는 것이 가능합니까(반복적으로 실행)? tail -f를 사용하여 파일을 추적하는 것과 같은가요?
bash 화면에서 디렉토리에 다운로드되는 파일을 실시간으로 모니터링하고 싶습니다.
tail -f
Linux 에서 디렉토리(아마도 ls를 사용하여)에서와 동일한 작업을 수행 할 수 있는 쉬운 방법이 있습니까 ?
답변1
"watch" 명령을 사용하십시오:
watch ls
그러면 2초마다 "ls" 명령이 실행됩니다.
답변2
watch
당신이 그것을 얻는다면 이것은 확실히 최선의 대답입니다. 그러나 완벽함을 위해 몇 가지 간단한 쉘 스크립트를 사용하여 대략 유사한 것을 시뮬레이션할 수 있습니다.
while (true)
do
date
ls -lrt | tail -n 10
sleep 2
clear
done
또 다른 접근 방식은 를 사용하는 것입니다 diff
. 이는 한때 존재했던 파일이 삭제되었는지 여부도 나타냅니다. 한 가지 장점은 터미널을 지우지 않으므로 위로 스크롤하면 모든 변경 사항의 전체 기록을 볼 수 있다는 것입니다. 단점은 상태 변경 추론을 관리하기 위해 두 개의 임시 파일을 생성한다는 것입니다.
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
답변3
확인하다 inotifywait
,
예를 들어 폴더를 모니터링하려면 abc
다음을 수행할 수 있습니다.
while inotifywait -e close_write abc; do
# do `ls` when abc changed
ls abc
done