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より良いオプションですか?

ベストアンサー1

おすすめ記事