inotify: 디렉토리의 어떤 파일이 변경되었는지 에코합니다.

inotify: 디렉토리의 어떤 파일이 변경되었는지 에코합니다.

방금 배웠어요파일이 수정되었는지 지속적으로 확인하는 방법:

while inotifywait -q -e modify filename >/dev/null; do
    echo "filename is changed"
    # do whatever else you need to do
done

내가 사용하는 경우디렉토리 이름파일 이름이 아닌 디렉터리의 모든 파일을 확인할 수 있습니다.

while inotifywait -q -e modify directoryname >/dev/null; do
    echo "filename is changed"
    # do whatever else you need to do
done

echo그런데 변경된 파일의 파일 이름을 어떻게 알 수 있나요 ?

답변1

inotifywait일련의 연속적인 이벤트 세트가 watch 디렉토리에서 방출되므로 권장되는 접근 방식은 watch를 루프 밖으로 이동 while하고 루프가 보는 새 루프에서 이벤트를 찾는 것입니다 inotify. 명령은 이러한 이벤트를 확인하고 이를 읽으려면 Enter 기준을 통과해야 합니다.--quietread

inotifywait -m -e modify "directoryname" | 
while read -r dir action file; do
    echo "The file '$file' appeared in directory '$dir' via '$action'"
done

관련 정보