ルートが所有するファイルの最後の行を削除します。

ルートが所有するファイルの最後の行を削除します。

666ユーザーが別のスクリプトを使用して編集できる権限を持つファイルがあります。これはうまくいきます。ファイルの最後の行を削除するスクリプトを作成する必要がありますが、sedtrisのようなものを使用して最初にファイルを作成してその場所に移動するのと同じようには機能しません。ユーザーはこれを行うことはできません。

新しいファイルをその場所に移動せずにファイルを編集して最後の行を削除する方法はありますか?

ベストアンサー1

この質問にタグが付けられたので、エディタを使用してファイルを内部で編集する方法は次のとおりですed

printf '%s\n' d w q | ed -s file

を使用して編集セッションを開始すると、edエディタは常に開いているファイルの最後の行にユーザーを配置します。ファイルの最後の行を削除するには、削除できます。現在のlineを使用してd変更されたバッファをファイルに書き換えてからw終了しますq。ほとんどのエディタの実装ed(BusyBoxを除く)では、次の代わりにed非標準の組み合わせコマンドを使用できます。wqwq

これは新しいファイルを生成しません(結果ファイルは元のファイルと同じinode番号を持ちます)。

おすすめ記事