GNU/Linux >> Linux の 問題 >  >> Linux

ファイルの内容を空にする最も効率的な方法は?

ファイルからすべてのエントリを削除する3つの方法を知っています。

彼らは

  • >ファイル名
  • タッチファイル名
  • ファイル名

これら3つのうち、私は> filenameを悪用します 必要なキーストロークの数が最も少ないためです。

ただし、大きなログファイルと小さなファイルに関して、3つのうちどれが最も効率的か(より効率的な方法がある場合)を知りたいです。

また、3つのコードはどのように動作し、内容を削除しますか?

編集 :この回答で説明されているように、これは実際にはそうではありません ファイルをクリアしてください!

承認された回答:

実際、2番目の形式の touch filename ファイルから何も削除されません。空のファイルが存在しない場合にのみ作成されるか、既存のファイルの最終変更日が更新されます。

そして3番目のfilename / dev / nullでファイル名を実行しようとします 入力として。

cp / dev/nullファイル名 動作します。

効率的である場合、最も効率的なのは truncate -s 0 filenameです。 (ここを参照)。

それ以外の場合は、 cp / dev / null filename または>filename どちらも大丈夫です。どちらも、truncate-on-open設定を使用して、ファイルを開いてから閉じます。 cp / dev / nullも開きます 、そのため、わずかに遅くなります。

一方、 truncate > filenameよりも遅くなる可能性があります truncateコマンドを実行するためにスクリプトから実行する場合、システムは実行可能ファイルを開き、ロードしてから実行する必要があります。


Linux
  1. ファイルの内容を表示せずにクリップボードにコピーしますか?

  2. コマンドSed‘1!g; h; $!d’は、ファイルの内容をどのように逆にしますか?

  3. Python FTPは日付で最新のファイルを取得します

  1. ファイルの行数だけを取得する方法

  2. Linux ターミナルでファイルの内容をクリップボードにコピーする

  3. ファイルの内容を再帰的に表示するには?

  1. ターミナルエミュレータを起動する最もポータブルな方法は?

  2. バッシュ‘?

  3. MvはFsでアトミックですか?