
コマンドラインで指定したファイルの内容を削除せずに空にする
コマンドラインで指定したファイルの内容を削除せずに空にする
コマンドラインで作業していて、ファイルの内容をすぐに空にする必要がある場合は、問題のファイル名の前に大なり記号とスペースを挿入することで、それを実行できます。
コマンドラインからファイルの内容を消去する方法
ファイルを保持しながらその内容を削除するトリックは次のようになります。
> filename
この方法はbashや他の多くのシェルでは機能しますが、zshや他のシェルで機能しない場合は、echoのバリエーションを使用することもできます。zshの場合、echo nullとリダイレクトを使用してコマンドラインからファイルの内容を消去するには、以下のコマンドを使用します。
echo -n > filename
対象ファイル内のすべてのコンテンツは警告なしに即座に削除され、ファイルの存在、ファイル名、および権限は保持されますが、ファイルは空白のままになります。これは、手動でファイルを削除して再作成するよりも、多くの場合、より適切かつ迅速な方法です。
良い実用的な例としては、ログ ファイルの内容を消去することが挙げられます。次に例を示します。
> ~/Library/Logs/updates.log
または、エコー リダイレクトを使用して同じ効果を実現します。
echo -n > ~/Library/Logs/updates.log
このコマンドを使用して、touch コマンドを使用する場合と同様に、その場所に新しい 0 バイトのファイルを作成することもできます。
これは、ログ ファイルや類似の項目でよくあることですが、特定のファイルの権限をそのままにして、内容を上書きしたい場合に特に役立ちます。