ls를 사용하여 tail -f와 동일한 작업을 수행하려면 어떻게 해야 합니까? [복사]

ls를 사용하여 tail -f와 동일한 작업을 수행하려면 어떻게 해야 합니까? [복사]

중복 가능성:
명령을 따르는 것이 가능합니까(반복적으로 실행)? tail -f를 사용하여 파일을 추적하는 것과 같은가요?

bash 화면에서 디렉토리에 다운로드되는 파일을 실시간으로 모니터링하고 싶습니다.

tail -fLinux 에서 디렉토리(아마도 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

관련 정보