Windows、Mac、Linuxでコマンドラインの出力ファイルを保存する方法

ターミナルコマンドを実行すると、通常はターミナルに出力が表示され、すぐに読み取ることができます。ただし、後から分析したり別のツールと組み合わせたりするために、出力を保存したい場合があります。

コマンドラインで出力リダイレクトを使用して、これを行うことができます。Windows、Mac、Linuxでコマンドの出力テキストファイルに送信する方法を確認してください。

コマンドラインの出力ファイルをリダイレクトする

コマンドの出力をファイルにリダイレクトするために使用できる演算子は2つあります。>>>です。予期しないデータの損失を避けるために、2つの違いを理解することが重要です。

>記号は、新しいファイルを作成するか、すでに存在する場合は上書きします。>>演算子も、ファイルが存在しない場合は新しいファイルを作成しますが、既存のファイルは上書きしません。ファイルがすでに存在する場合は、テキストを末尾に追加します。

コマンドの出力をファイルにリダイレクトするには、コマンドを入力し、>または>>演算子を指定し、最後に出力先ファイルへのパスを指定します。たとえば、ディレクトリの内容を一覧表示するlsコマンドの出力を保存する方法は次のとおりです。

ls > /path/to/file

/path/to/fileを、使用するファイルへの完全なパスに置き換えてください。コマンドはサイレントに実行され、指定したファイルに出力が保存されます。

ターミナルでファイルの内容を表示するには、catコマンドを使用します。ここでも、/path/to/fileを、表示するファイルへの完全なパスに置き換えてください。

cat /path/to/file

新しいファイルにコマンドの出力があるはずです。

>演算子は、既存のファイルの内容を置き換えます。複数のコマンドの出力を1つのファイルに保存したい場合は、代わりに>>演算子を使用します。これはファイルに追加されるため、保存した以前の出力が失われることはありません。

たとえば、作成したファイルの最後にシステム情報を追加してみます。Linux/Macでuname -aを実行するか、Windowsの場合はverコマンドを実行し、ファイルへのパスとともに>>演算子を追加するだけです。

uname -a >> /path/to/file

このプロセスを必要に応じて何度も繰り返して、コマンドの出力をファイルの末尾に追加し続けます。

出力を画面に印刷してファイルにリダイレクトする

>および>>演算子は、コマンドの出力を画面に表示するのではなく、ファイルに送信するだけです。出力をファイルに送信して画面に表示したい場合は、teeコマンドを使用します。

teeコマンドを使用するには、パイプ演算子である縦棒(|)を使用して、別のコマンドから出力​​を送信します。たとえば、teeを使用してlsコマンドの出力をパイプで送信する方法は次のとおりです。

ls | tee /path/to/output.txt

teeコマンドは、その出力を画面と指定したファイルに送信します。これは、>演算子と同様に、ファイルを上書きするか、存在しない場合は新しいファイルを作成します。

teeコマンドを使用して出力を画面に印刷し、ファイルの末尾に追加するには、ファイルパスの前に-aフラグを追加します。たとえば、次のようになります。

uname -a | tee -a /path/to/output.txt

画面にコマンドの出力が表示され、catを使用してteeがファイルにも追加したことを確認できます。

コマンドラインのパワーを活用する

エラーを含む出力をファイルにリダイレクトする方法は他にもたくさんあります。コマンドラインのパワーを使用すると、システムアクティビティを監視し、複数のソースからデータを結合するなど、さまざまなことができます。

出力を保存すること以外にも、ターミナルでできることはたくさんあります。学習曲線は急ですが、ターミナルコマンドは表現力があり、構成可能で、多くの場合、GUIの代替手段よりも高速です。