inode를 보존하면서 일관되게 파일 쓰기

inode를 보존하면서 일관되게 파일 쓰기

inode를 변경하지 않고 파일을 일관되게(여기에 사용된 데이터베이스 시스템 용어로 일관되게) 편집하는 가장 좋은 방법은 무엇입니까? 일반적으로 임시 파일에 쓴 다음 을 호출 rename(2)하지만 이로 인해 inode가 변경되므로 이는 옵션이 아닙니다. 비슷한 것을 생각했는데 modify_file <file >tmp && cat <tmp >file, 수정이 완전히 일어나거나 전혀 일어나지 않거나 둘 중 하나입니다( modify_file표준 입력의 내용을 수정하는 과정입니다). 일반 쉘 유틸리티를 사용하여 이것이 가능합니까? 다음은 아마도 대부분의 상황( SIGKILL정전 제외) 을 다룰 것이라고 생각합니다 .

(
    flock -x 9
    trap '' INT TERM # (perhaps other signals)
    modify_file <file >tmp && cat <tmp >file
) 9>>file

파일의 특정 바이트 시퀀스만 변경하려는 하위 사례에 대해 ed더 나은 옵션이 될까요 ?

관련 정보