entr: 새 파일을 재귀적으로 식별합니다.

entr: 새 파일을 재귀적으로 식별합니다.

디렉터리(및 하위 디렉터리)에 새로 추가된 파일을 추적하려면 다음을 사용하고 싶습니다.entr

ls -d /tmp/*  | entr -p notify-send "new file added."

하지만 새 파일을 추가하면 아무 일도 일어나지 /tmp/않습니다 /tmp/foo/. 내가 뭘 잘못했나요?

답변1

사용에 대한 특정 사용 사례가 있습니까 entr? 일반적으로 다음을 구문 분석하지 않는 것이 좋습니다 ls.
`ls`가 구문 분석되지 않는 이유는 무엇입니까(대신 무엇을 해야 할까요)?

귀하의 경우에는 다음을 사용하는 것이 더 나을 것이라고 생각합니다 incrond.
https://www.howtoforge.com/tutorial/trigger-commands-on-file-or-directory-changes-with-incron/ (IN_CREATE는 귀하의 사례에 특히 관심이 있습니다)

내가 아는 한, incrond하위 디렉터리를 감시하는 것은 불가능합니다. 따라서 /tmp의 모든 하위 디렉터리도 감시해야 한다면 다음이 watcher귀하의 경우에 더 적합할 것입니다.
https://stackoverflow.com/questions/44088179/watch-a-subdirectory-with-incron

특정 사용 사례를 알지 못한 채 참고하세요. /tmp는 다양한 프로세스에서 사용됩니다. 모든 변경 사항을 추적하는 것은 아마도 그다지 현명하지/실용적이지 않을 것입니다.

답변2

유형

ls -d /tmp/* | entr -p echo "New File"

한 창에. 그런 다음 다른 창에서 다음을 입력하세요.

echo "hello" > /tmp/test123456.txt

첫 번째 창에 "새 파일"이 표시됩니다.

답변3

나는 이것을 사용하여 마크다운 텍스트의 HTML 버전을 업데이트합니다.

# Preview a comment written in Markdown
cpv() {
    echo ">INFO> Refreshing preview"
    find | entr -d generate_comment_preview.sh
}
cpvr() {
    cpv
    if [[ $? > 0 ]]; then
        echo ">INFO> Launching cpvr again"
        cpvr
    fi
}

그런 다음 Epiphany(gnome-web)를 사용하여 파일을 열면 자동으로 새로 고쳐집니다.

관련 정보