このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:標準出力のリダイレクト

標準出力のリダイレクト

 Linuxでは、コマンドの実行結果(標準出力)を画面に表示するだけでなく、ファイルに保存することができます。これを標準出力のリダイレクトと呼びます。ここでは、標準出力のリダイレクトの方法と、その応用について解説します。

コマンドの出力をファイルに保存する

 標準出力をリダイレクトするには、> という記号を使用します。これにより、コマンドの出力先を画面(端末)から指定したファイルに変更することができます。

【書式】
[コマンド] > [ファイル]

使用例

ls -l コマンドの実行結果を list.txt というファイルに保存してみましょう。

user01@ubuntu:~$ ls -l > list.txt

 このコマンドを実行すると、ls -l の出力結果は画面に表示されず、list.txt というファイルに保存されます。

保存されたファイルの内容を確認するには、cat コマンドを使用します。

user01@ubuntu:~$ cat list.txt
合計 40
-rw-rw-r-- 1 user01 user01    0 10月 26 23:42 list.txt
drwx------ 4 user01 user01 4096  9月 21 00:00 snap
drwxrwxr-x 2 user01 user01 4096 10月  4 00:50 work
drwxr-xr-x 2 user01 user01 4096  9月 14 22:50 ダウンロード
drwxr-xr-x 2 user01 user01 4096  9月 14 22:50 テンプレート
...(以下省略)...

ポイント

  • 自動的なファイル作成:リダイレクト先のファイルは自動的に作成されるため、事前に touch コマンドなどでファイルを作成する必要はありません。

コマンドの出力をファイルに追記する

 既存のファイルにコマンドの出力を追記したい場合は、>> という記号を使用します。これにより、ファイルの既存の内容を保持したまま、コマンドの出力を末尾に追加できます。

【書式】
[コマンド] >> [ファイル]

使用例

先ほど作成した list.txt に現在の日付を追記してみます。

user01@ubuntu:~$ date >> list.txt

再度、list.txt の内容を確認すると、最後に日付が追記されていることがわかります。

user01@ubuntu:~$ cat list.txt
合計 40
-rw-rw-r-- 1 user01 user01    0 10月 27 00:02 list.txt
drwx------ 4 user01 user01 4096  9月 21 00:00 snap
drwxrwxr-x 2 user01 user01 4096 10月  4 00:50 work
...(省略)...
drwxr-xr-x 2 user01 user01 4096  9月 14 22:50 ミュージック
drwxr-xr-x 2 user01 user01 4096  9月 14 22:50 公開
2024年 10月 27日 日曜日 00:02:29 JST

不要なファイルの削除

 リダイレクトによって作成したファイルが不要になった場合は、rm コマンドで削除することができます。

user01@ubuntu:~$ rm list.txt

削除後、ls コマンドで確認すると、list.txt が削除されていることがわかります。

user01@ubuntu:~$ ls
snap  ダウンロード  デスクトップ  ビデオ    ミュージック
work  テンプレート  ドキュメント  ピクチャ  公開

ポイント

  • 自動的なファイル作成:リダイレクト先のファイルは自動的に作成されるため、事前にファイルを作成する必要はありません。
  • 上書き注意>を使用すると、指定したファイルが既に存在する場合、その内容は上書きされます。既存の内容を残したまま追加したい場合は、>>を使用します。
リダイレクト記号動作
>ファイルに上書き
>>ファイルに追記
ポイント

まとめ

  • 標準出力のリダイレクトを使用すると、コマンドの出力をファイルに保存できます。
    > を使用すると、指定したファイルに上書きします。
    >> を使用すると、指定したファイルに追記します。
  • リダイレクト先のファイルは自動的に作成され、既存のファイルを指定した場合は上書きまたは追記されます。
  • 不要になったファイルは、rm コマンドで削除できます。

 標準出力のリダイレクトを活用することで、コマンドの実行結果を効率的に管理・活用できます。日々の業務でぜひ活用してみてください。