답변:
현재 디렉토리에서 파일 액세스를 "실시간"으로 모니터하려면 터미널을 열고 다음을 실행하십시오.
inotifywait -r -m -e access --format '%w%f' . | while IFS='' read -r fname; do [ -f "$fname" ] && lsof "$fname"; done
또는 여러 줄에 걸쳐서
inotifywait -r -m -e access --format '%w%f' . | while IFS='' read -r fname
do
[ -f "$fname" ] && lsof "$fname"
done
이를 지원하는 linux와 같은 OS가 필요합니다 inotifywait
.
while
루프 몸체는 목적에 맞는 것으로 교체 할 수 있습니다.
옵션의 의미는 다음 inotifywait
과 같습니다.
-r
하위 디렉토리를 통해 재귀 적으로 모니터링합니다.
-m
지속적으로 모니터링하십시오.
-e access
ACCESS 이벤트를 모니터하십시오. 관심있는 이벤트가 많이 있지만 요청한 내용과 가장 일치하는 것으로 보입니다.
--format '%w%f'
액세스 한 각 파일의 경로와 파일을 표준 출력에 기록하십시오.
.
현재 디렉토리를 모니터링하십시오 .
.
위의 코드는 줄 바꿈 문자가 포함 된 파일 이름을 처리하지 않습니다. 이를 처리하려면 -csv
CSV 형식의 미묘함을 이해하는 더 많은 코드와 함께 inotifywait의 옵션 을 사용해야 합니다.