답변:
tail -F
파일 개체가 아닌 파일 이름을 따르므로 로그 파일 회전의 경우 특히 유용합니다.
tailf
이제 더 이상 사용되지 않으며 tail -f
안전합니다. (시스템에서이를 확인 man tailf
하십시오.) 설명서를 참조하십시오 : man7.org/linux/man-pages/man1/tailf.1.html
inotifywait
에서 inotify를-도구 는 명령을 파일 (또는 디렉토리의 모든 파일) 변경을 할 때마다 실행하려는 경우에 유용합니다. 예를 들면 다음과 같습니다.
inotifywait -r -m -e modify /var/log |
while read path _ file; do
echo $path$file modified
done
path
변수 이름에 대한 가장 큰 선택이 아니다. 에 zsh
환경 변수는 대소 문자를 구분하지 않는 것 같습니다. 나에게는 설정 path
원인 PATH
도 설정되며, 기본적으로 문제를 해결할 때까지 아무것도 실행되지 않습니다. On bash
으로 설정 path
하면 영향을 미치지 않습니다 PATH
.
특정 오류 또는 ID에 대한 로그 파일을 검색해야하기 때문에 less +FG
1 이상을 선호합니다 tail -f
. 무언가를 검색해야하는 경우 ^C
파일 팔로우 를 중단하고 ?
뒤로 검색을 시작 하려면 입력 합니다.
키 바인딩은와 거의 동일합니다 vi
. +
옵션을 사용하여 시작시 모든 명령을 초기화 할 수 있습니다 .
+cmd Causes the specified cmd to be executed each time a new file is
examined. For example, +G causes less to initially display each
file starting at the end rather than the beginning.
정말 긴 로그의 경우 -n
줄 번호 매기기를 해제 하는 옵션 을 사용하는 것이 편리하다는 것을 알았습니다 . 맨 페이지에서 :
-n or --line-numbers
Suppresses line numbers. The default (to use line numbers) may
cause less to run more slowly in some cases, especially with a
very large input file. Suppressing line numbers with the -n
option will avoid this problem. Using line numbers means: the
line number will be displayed in the verbose prompt and in the =
command, and the v command will pass the current line number to
the editor (see also the discussion of LESSEDIT in PROMPTS
below).
의견에서 이것을 지적 하기 위해 rgmarcha에 대한 모자 팁 .
alias
원하는 옵션 으로 설정해야합니다 . 매번 입력하지 않아도됩니다.
LaTeX 파일을 편집하고 있으며 중간에 변경 사항이 있는지 모니터하고 싶습니다. 나는 나에게 유용한 다음과 같은 작은 쉘 스크립트를 채웠다. 다른 사람에게도 도움이되기를 바랍니다.
#!/bin/bash
FILE="$1"
CMD="$2"
LAST=`ls -l "$FILE"`
while true; do
sleep 1
NEW=`ls -l "$FILE"`
if [ "$NEW" != "$LAST" ]; then
"$CMD" "$FILE"
LAST="$NEW"
fi
done
다른 이름으로 저장 watch.sh
하고 수행하십시오 chmod u+x watch.sh
. 그런 다음 다음과 같이 실행합니다.
./watch.sh file.tex pdflatex
실제 수정이 수행 된 경우에만 명령을 실행하려면 `md5sum "$FILE"`
대신 대신 사용할 수 있습니다 `ls -l "$FILE"`
.
NEW=`tree -sDct . -I 'ignore_pattern|another_pattern'`
꼬리를 추가하는 것 외에도 파일을 검색하려면 "F"명령을 적게 사용합니다.
tail을 사용할 때 파일이 롤오버되거나 편집으로 바뀌면 추가 인수가 필요하다는 것을 명심하십시오 (vim의 기본 모드 : w).
tail -f는 tail이 파일 디스크립터를 저장하고 따르게합니다. 파일이 교체되면 설명자가 변경됩니다. 파일 디스크립터를 따르는 것의 장점은 파일 이름이 바뀌더라도 여전히 파일을 따르게된다는 것입니다.
tail --follow =는 이름이 바뀐 파일을 정기적으로 다시 열어 이름이 바뀐 파일이 있는지 확인합니다.
--retry는 로그 파일에 꼬리를 붙이고 싶지만 파일이 아직 생성되지 않은 경우 유용한 또 다른 옵션입니다.
tail -F는 --follow = --retry에 대한 바로 가기입니다.
tailf를 잊어라, diff는 원하는 명령이다. 다음은 두 파일 사이에서 또는 한 파일에 쓰여지는 파일 사이의 차이를 실시간으로 확인하는 좋은 방법입니다.
이러한 방법을 사용하여 기록을 유지하기 위해 파일에 변경 사항을 작성하는 등 원하는 방식으로 동작을 수정할 수 있습니다. 시계 간격 또는 아래 명령에 대한 다른 옵션으로 놀아보십시오.
파일이 1 개 있으며 파일이 변경 될 때보고 싶습니다.
그래서 여기에 무엇을해야합니까?
cp file file2
touch check-differences.sh
nano check-differences.sh
chmod 755 check-differences.sh
#!/bin/bash
diff file file2
cp file file2
watch ./check-differences
기본적으로 2 초마다 업데이트됩니다. 따라서 돌아가서 읽어야하는 경우 diff의 출력을 스크립트의 파일에 씁니다.
또는 출력을 볼 필요가 없으면 cron을 사용하여 정기적으로 스크립트를 실행하십시오.