디렉터리(및 하위 디렉터리)에 새로 추가된 파일을 추적하려면 다음을 사용하고 싶습니다.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)를 사용하여 파일을 열면 자동으로 새로 고쳐집니다.