
스크립트에서 inotifywait를 사용하고 있는데 숨겨진 파일을 감시하지 않도록 제외할 수 있는 방법이 있는지 궁금합니다.
숨겨진 파일을 제외하는 정규식 패턴을 결정할 수 없는 것 같습니다.
답변1
점( .
)으로 시작하는 파일 이름을 의미한다고 가정하고 이를 무시해도 됩니다. 문제는 inotifywait --exclude
패턴이 파일의 전체 경로와 일치하는 것으로 나타나므로 이를 고려해야 한다는 것입니다.
따라서 inotifywait
디렉토리를 제공 foo
하고 bar
감시하면 패턴은 foo/something
, bar/somethingelse
. 정규 표현식에서 평소와 같이 점을 이스케이프 처리해야 합니다.
이는 도트 파일을 제외한 현재 디렉터리의 모든 생성을 감시해야 합니다(정규 표현식이므로 점을 이스케이프해야 함).
inotifywait -ecreate -m --exclude '^\./\.' .
또는 덜 구체적으로 슬래시와 점의 조합을 찾아 모든 디렉터리에서 도트 파일을 제외합니다.
inotifywait -ecreate -m --exclude '/\.' foo bar
물론 경로의 일부에 점이 앞에 있는 디렉토리를 관찰하는 경우에는 작동하지 않습니다. 해당 경로의 모든 항목과 일치합니다.