foobar
예를 들어 파일이 있고 다음을 수행하는 경우 파일 내용이 변경되면 파일 내용을 출력하고 싶습니다 .
magic_command foobar
현재 터미널은 파일의 내용을 표시해야 하며기다리다나도 모르게 ^C를 눌렀다.
그런 다음 다른 터미널에서 다음을 수행합니다.
echo asdf >> foobar
첫 번째 터미널에는 원본 파일 내용 외에 새로 추가된 줄이 표시되어야 합니다(물론 ^C를 누르지 않았다는 점을 고려하면).
답변1
당신은 tail command
그것을 사용할 수 있습니다 -f
:
tail -f /var/log/syslog
이는 실시간 디스플레이에 적합한 솔루션입니다.
답변2
하나의 터미널 화면에 맞는 짧은 파일을 표시하고 변경되는 내용이 전체 파일일 수 있는 경우 다음을 사용할 수 있습니다 watch
.
watch cat example.txt
Every 2.0s: cat example.txt Sun Aug 3 15:25:20 2014
Some text
another line
기본적으로 선택적 헤더를 포함한 전체 파일을 2초마다 표시합니다.
옵션 -d
( --differences
)은 이전 버전 또는 출력의 첫 번째 버전에 대한 변경 사항을 강조 표시합니다.
답변3
less
켜져 있으면 클릭할 수 있는 것과 tail -f
같은 팔로우 모드가 있습니다 .F
답변4
세 가지 해결책이 있습니다.
1) tail -f
좋은 생각이야
2)우리는 또한 tailf
사용해야 합니다
삼)세 번째는 bash 스크립트입니다.
#!/bin/bash
GAP=10 #How long to wait
LOGFILE=$1 #File to log to
if [ "$#" -ne "1" ]; then
echo "USAGE: `basename $0` <file with absolute path>"
exit 1
fi
#Get current long of the file
len=`wc -l $LOGFILE | awk '{ print $1 }'`
echo "Current size is $len lines."
while :
do
if [ -N $LOGFILE ]; then
echo "`date`: New Entries in $LOGFILE: "
newlen=`wc -l $LOGFILE | awk ' { print $1 }'`
newlines=`expr $newlen - $len`
tail -$newlines $LOGFILE
len=$newlen
fi
sleep $GAP
done
exit 0