Linuxターミナルでファイルを処理しているときに、Linuxコマンドラインエディタを使用してファイルを開く必要がなく、ファイルの内容をクリアしたい場合があります。これはどのように達成できますか?この記事では、いくつかの便利なコマンドを使用して、ファイルの内容を空にするいくつかの異なる方法について説明します。
そうは言っても、以下はコマンドラインからファイルの内容をクリアする手段です。
access.log
を使用しました 次の例で。
1。 Nullにリダイレクトしてファイルコンテンツを空にする
シェルリダイレクトnull
を使用してファイルコンテンツを空または空白にする最も簡単な方法 (存在しないオブジェクト)以下のようにファイルに:
# > access.log
2。 「true」コマンドリダイレクトを使用してファイルを空にする
ここでは、記号:
を使用します 本質的にtrue
と同等のシェルビルトインコマンドです コマンドを実行すると、操作なし(操作なし)として使用できます。
もう1つの方法は、:
の出力をリダイレクトすることです。 またはtrue
次のようなファイルへの組み込みコマンド:
# : > access.log OR # true > access.log
3。 / dev/nullでcat/cp/ddユーティリティを使用してファイルを空にする
Linuxでは、null
デバイスは基本的に、プロセスの不要な出力ストリームを破棄するために、または入力ストリームに適した空のファイルとして使用されます。これは通常、リダイレクトメカニズムによって行われます。
そして/dev/null
したがって、デバイスファイルは、送信された入力を書き留める(削除する)特別なファイルであるか、その出力は空のファイルの出力と同じです。
さらに、/dev/null
の出力をリダイレクトすることで、ファイルの内容を空にすることができます。 catコマンドを使用した入力として(ファイル)に:
# 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
このため、上記のechoコマンドをファイルにリダイレクトし、catコマンドを使用してファイルの内容を表示すると、空の行(空の文字列)が出力されます。
null出力をファイルに送信するには、フラグ-n
を使用します エコーを伝えます 前のコマンドで生成された空の行につながる末尾の改行を出力しないようにします。
# echo -n "" > access.log
5。切り捨てコマンドを使用してファイルを空にする
切り捨て コマンドは、ファイルのサイズを定義されたサイズに縮小または拡大するのに役立ちます。
-s
で使用できます ファイルサイズを指定するオプション。ファイルの内容を空にするには、次のコマンドのようにサイズ0(ゼロ)を使用します。
# truncate -s 0 access.log
今のところ以上です。この記事では、簡単なコマンドラインユーティリティとシェルリダイレクトメカニズムを使用してファイルコンテンツをクリアまたは空にする複数の方法について説明しました。
これらはおそらくこれを行うための唯一の利用可能な実用的な方法ではないので、以下のフィードバックセクションを介してこのガイドに記載されていない他の方法についても教えてください。