ファイルの内容を消去する最も効率的な方法

ファイルの内容を消去する最も効率的な方法

私はファイルからすべての項目を削除する3つの方法を知っています。

彼ら

  • >filename
  • touch filename1
  • filename < /dev/null

>filename3つのうち、最も少ない数のキーストロークが必要なため、最も濫用されます。

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

さらに、これらの3つのコードはどのようにコンテンツを操作して削除しますか?


1編集する:で議論したようにこの回答、これは実際に確かにファイルを削除してください!

ベストアンサー1

実際、2番目のフォームはtouch filenameファイルから何も削除しません。ファイルが存在しない場合は、空のファイルを作成するか、既存のファイルの最後の変更日を更新します。

3番目はfilenameを入力としてfilename < /dev/null実行しようとします。/dev/null

cp /dev/null filename働く

効率の面で最も効果的なものは次のとおりですtruncate -s 0 filename(参照ここ)。

そうでなければ、両方ともcp /dev/null filename大丈夫> filenameです。両方を開くと、切り捨て設定を使用してファイルを開いて閉じます。 cpも点灯しているので/dev/null少し遅くなります。

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

おすすめ記事