파일의 바이트가 변경된 시기를 확인하려면 head 명령 또는 이와 유사한 명령을 사용하십시오.

파일의 바이트가 변경된 시기를 확인하려면 head 명령 또는 이와 유사한 명령을 사용하십시오.

tail 명령을 사용하면 파일 길이(바이트)의 변경을 나타내는 이벤트를 수신할 수 있습니다.

파일 내용이 변경되었지만 길이가 같은 경우 이벤트를 수신하는 방법을 찾고 있습니다. 특히 파일의 첫 번째 또는 두 번째 줄의 변경 사항을 수신합니다.

(head 명령이 이를 수행할 것으로 예상할 수 있지만 실제로는 수행됩니다.아니요head 명령이 변경 사항을 수신할 수 있는 것처럼 보이며 콘텐츠의 시작 부분만 가져옵니다. )

파일 내용(특히 파일의 시작 부분)에 대한 변경 사항을 수신할 수 있는지 아는 사람이 있습니까?

파일에 데이터를 추가하는 프로세스와 파일의 첫 번째 줄을 읽고 삭제하는 프로세스가 있다는 점에 유의하세요.

파일 헤더 변경 사항을 독립적으로 수신하는 데 관심이 있지만 파일에 첨부된 이벤트를 캡처하거나 필터링할 수 있기를 원하지 않습니다.

답변1

어쩌면 다음과 같은 것일 수도 있습니다.

#!/bin/bash

while true; do
    diff -q <(head -n 1 fileA.txt) <(head -n 1 fileB.txt)
    sleep 5
done

다음 두 파일( fileA.txtfileB.txt)이 주어지면:

cat fileA.txt fileB.txt 
foo
bar

foo
bar

내가 바뀔 때첫 번째좋아요 fileA.txt:

cat fileA.txt 
fooo
bar

스크립트에서 다음 출력을 얻습니다.

./checkFirst.sh 
Files /dev/fd/63 and /dev/fd/62 differ
Files /dev/fd/63 and /dev/fd/62 differ
Files /dev/fd/63 and /dev/fd/62 differ
Files /dev/fd/63 and /dev/fd/62 differ

내가 변하면두번째좋습니다. 스크립트에서는 아무 일도 일어나지 않고 계속 반복됩니다.

cat fileA.txt 
foo
barbara

Mac OS X 10.11.6 및 다음에서 테스트되었습니다.

GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.

관련 정보