디렉터리의 내용을 실시간으로 표시하는 내장 Linux 명령이 있습니까?

디렉터리의 내용을 실시간으로 표시하는 내장 Linux 명령이 있습니까?

디렉터리의 내용을 실시간으로 표시하는 내장 Linux 명령이 있습니까?실시간으로 파일의 내용을 표시하는 "tail -f file_name" 명령과 유사합니다.

답변1

를 사용하여 이 작업을 수행할 수 있습니다 watch. 완전히 실시간은 아니지만 충분히 가깝습니다(최대 10분의 1초).

watch -n0.1 ls

매뉴얼에서 :

-n, --interval seconds
          Specify update interval.  The command will not allow quicker than 0.1 second interval, in which the smaller values are converted.

답변2

나는 이것을 썼습니다. 이것이 당신에게 필요한 것이기를 바랍니다. 는 아니지만 built-in Linux command대부분의 UNIX 상자에 있는 일반 프로그램만 사용합니다.

필요에 따라 시간을 조정하세요 sleep. 저는 최소한 2초의 값을 사용하겠습니다. cmd="ls"비재귀적 구조 또는 재귀적으로 검색하는 데 사용합니다 cmd="find DIRNAME". 마지막 경우에는 DIRNAME/모든 파일과 디렉터리에 대한 접두어를 얻게 됩니다.

 echo "" | awk '{while ( 1 ) {cmd="find ."; delete b;c=0; while ( ( cmd | getline result ) > 0 ) {test=1;c++;n=0;for (i in a) {n++;if (a[i]==result) {b[c]=i; test=0; break;}} if (test) {n++;a[n]=result;b[c]=n;print "##NEW## "result }} close (cmd); for (i in a) {test=1;for (j in b) {if (b[j]==i) {test=0;break}} if (test) {print "##DELETED## "a[i]; delete a[i]}} system("sleep 5") } }'

답변3

알고 보니 너무나 간단한 일이다.

watch -d dir_name

답변4

inotifytools및 해당 명령줄 유틸리티를 사용할 수 있습니다 .

디렉터리를 모니터링하는 데 사용할 수 inotify있으며 디렉터리 자체 및 디렉터리 내부 파일에 대한 이벤트를 반환합니다.

사용할 수 있는 또 다른 도구는inotifywatch:

sudo inotifywatch -v -r /foo

-r모든 하위 디렉터리를 재귀적으로 감시하기 위해 for 를 추가할 수 있습니다 . 그러나 이 솔루션새로 생성된 파일의 변경 사항을 감지하지 못합니다.

따라서 또 다른 해결책은 다음을 사용하는 것입니다 inotifywait.

inotifywait -m --format "%f" /foo

test*다음은 새로 생성된 모든 파일 의 내용을 표시하는 또 다른 예입니다 /tmp.

inotifywait -m --format "%f" /tmp | grep --line-buffered ^test | xargs -L1 -I% sudo cat /tmp/% 2> /dev/null

관련 정보