Linuxで大きなファイルコンテンツを空または削除する5つの方法


Linuxターミナルでファイルを処理しているときに、Linuxコマンドラインエディタを使用してファイルを開く必要がなく、ファイルの内容をクリアしたい場合があります。これはどのように達成できますか?この記事では、いくつかの便利なコマンドを使用して、ファイルの内容を空にするいくつかの異なる方法について説明します。

注意:さまざまな方法を検討する前に、Linuxではすべてがファイルであるため、空にするファイルが重要なユーザーファイルまたはシステムファイルではないことを常に確認する必要があることに注意してください。重要なシステムまたは構成ファイルのコンテンツをクリアすると、致命的なアプリケーション/システムエラーまたは障害が発生する可能性があります。

そうは言っても、以下はコマンドラインからファイルの内容をクリアする手段です。

重要:この記事では、次の例でファイル access.log を使用しました。

1.Nullにリダイレクトしてファイルコンテンツを空にする

以下のように、シェルリダイレクト null (存在しないオブジェクト)を使用してファイルコンテンツを空または空白にする最も簡単な方法:

# > access.log

2.「true」コマンドリダイレクトを使用した空のファイル

ここでは、シンボルを使用します。は、本質的に true コマンドと同等のシェル組み込みコマンドであり、no-op(操作なし)として使用できます。 。

もう1つの方法は、または true の組み込みコマンドの出力を次のようにファイルにリダイレクトすることです。

# : > access.log
OR 
# true > access.log

3. / dev / nullでcat / cp / ddユーティリティを使用してファイルを空にする

Linuxでは、 null デバイスは基本的に、プロセスの不要な出力ストリームを破棄するために、または入力ストリームに適した空のファイルとして使用されます。これは通常、リダイレクトメカニズムによって行われます。

したがって、/dev/null デバイスファイルは、送信された入力を書き留める(削除する)特別なファイルであるか、その出力は空のファイルの出力と同じです。

さらに、catコマンドを使用して、/dev/null の出力を入力としてファイル(ファイル)にリダイレクトすることにより、ファイルの内容を空にすることができます。

# cat /dev/null > access.log

次に、cpコマンドを使用して、図のようにファイルの内容を空白にします。

# cp /dev/null access.log

次のコマンドで、 if は入力ファイルを意味し、 of は出力ファイルを参照します。

# dd if=/dev/null of=access.log

4.echoコマンドを使用してファイルを空にする

ここでは、空の文字列を指定してechoコマンドを使用し、次のようにファイルにリダイレクトできます。

# echo "" > access.log
OR
# echo > access.log

注:空の文字列はnullと同じではないことに注意してください。文字列は空である可能性があるため、すでにオブジェクトですが、nullは単にオブジェクトが存在しないことを意味します。

このため、上記のechoコマンドをファイルにリダイレクトし、catコマンドを使用してファイルの内容を表示すると、空の行(空の文字列)が出力されます。

null出力をファイルに送信するには、フラグ -n を使用します。これは、前のコマンドで生成された空の行につながる末尾の改行を出力しないようにechoに指示します。

# echo -n "" > access.log

5.truncateコマンドを使用してファイルを空にします

truncateコマンドは、ファイルのサイズを定義されたサイズに縮小または拡張するのに役立ちます。

ファイルサイズを指定する -s オプションと一緒に使用できます。ファイルの内容を空にするには、次のコマンドのようにサイズ0(ゼロ)を使用します。

# truncate -s 0 access.log

今のところ以上です。この記事では、単純なコマンドラインユーティリティとシェルリダイレクトメカニズムを使用してファイルコンテンツをクリアまたは空にする複数の方法について説明しました。

これらはおそらくこれを行うための唯一の利用可能な実用的な方法ではないので、以下のフィードバックセクションを介してこのガイドに記載されていない他の方法についても教えてください。