このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習25

新Linuxコマンド演習25 概要
「新Linuxコマンド演習25」では、コマンドの出力をファイルに書き出す(リダイレクト)操作を練習します。
Linuxのほとんどのコマンドは、実行結果(標準出力)とエラーメッセージ(標準エラー出力)をそれぞれ別の「出力ストリーム」に送信します。
リダイレクトを使うことで、これらの出力をファイルに保存したり、別のコマンドに渡したりできます。
この演習では次の3つのテーマを扱います。
- 標準出力のリダイレクト( > と >> )
- 標準エラー出力のリダイレクト( 2> と 2>> )
- 上書きと追記の違い。

標準出力・標準エラー出力とは
Linuxのコマンド実行では、結果が「3つのデータストリーム」で扱われます。
| 種類 | 番号 | 説明 | デフォルト出力先 |
|---|---|---|---|
| 標準入力(stdin) | 0 | コマンドが受け取るデータ(主にキーボード入力) | キーボード |
| 標準出力(stdout) | 1 | コマンドの実行結果やメッセージ | 端末画面 |
| 標準エラー出力(stderr) | 2 | エラーメッセージ | 端末画面 |
普段は画面に出ているだけの出力を、> や 2> を使ってファイルに保存できるのが「リダイレクト」です。
リダイレクトの基本構文
| 構文 | 説明 |
|---|---|
| コマンド > ファイル名 | 標準出力を指定したファイルに書き込む(上書き)。 |
| コマンド >> ファイル名 | 標準出力を指定したファイルの末尾に追記する。 |
| コマンド 2> ファイル名 | 標準エラー出力を指定したファイルに書き込む(上書き)。 |
| コマンド 2>> ファイル名 | 標準エラー出力を指定したファイルに追記する。 |
演習問題+模範解答例
演習01:標準出力をファイルへリダイレクトする
問題
現在の日時を dateコマンドで確認し、その出力を todayファイルに保存してください。
模範解答例
[suzuki@AlmaLinux ~]$ date
2025年 10月 30日 木曜日 21:45:13 JST
[suzuki@AlmaLinux ~]$ date > today
[suzuki@AlmaLinux ~]$ cat today
2025年 10月 30日 木曜日 21:45:14 JST解説

- > を使うと、標準出力(コマンド結果)をファイルに上書き保存します。
- cat today で、ファイルの中身を確認できます。
- 2回目に同じコマンドを実行すると、以前の内容は消えて新しい結果で上書きされます。
演習02:追記リダイレクトする
問題
todayファイルに新しい日時を追記してください。
模範解答例
[suzuki@AlmaLinux ~]$ date >> today
[suzuki@AlmaLinux ~]$ cat today
2025年 10月 30日 木曜日 21:45:14 JST
2025年 10月 30日 木曜日 21:47:20 JST解説
- >> は追記リダイレクトを意味します。
- 既存の内容を残したまま、新しい出力がファイルの末尾に追加されます。
- ログファイルなどを扱うときに頻繁に使われる重要な操作です。
演習03:標準エラー出力をファイルにリダイレクトする
問題
存在しないファイル yesterday をlsコマンドで表示し、エラーメッセージを stderror というファイルに出力してください。
模範解答例
[suzuki@AlmaLinux ~]$ ls -l today yesterday
ls: cannot access 'yesterday': No such file or directory
-rw-rw-r--. 1 suzuki suzuki 86 10月 30 21:47 todayこのままだと、エラーは端末に表示されます。
ここで、エラー出力をファイルにリダイレクトしてみましょう。
[suzuki@AlmaLinux ~]$ ls -l today yesterday 2> stderror
-rw-rw-r--. 1 suzuki suzuki 86 10月 30 21:47 today
[suzuki@AlmaLinux ~]$ cat stderror
ls: cannot access 'yesterday': No such file or directory解説
エラーメッセージの出力を標準出力の端末画面ではなく、ファイルへリダイレクトするには、「2>」もしくは、「2>>」と指定します。

- 2> は「標準エラー出力(ファイルディスクリプタ番号2)」をファイルに書き出します。
- 2 > のように数字と記号の間にスペースを入れないことがポイントです。
- 結果として、正常な出力(today)は画面に表示され、エラー(yesterday)はファイルに保存されます。
演習終了時の作業
問題
この演習で作成したファイルを削除してください。
模範解答例
[suzuki@AlmaLinux ~]$ rm today stderror
[suzuki@AlmaLinux ~]$ ls
Desktop Downloads Pictures Templates
Documents Music Public Videos解説
rmコマンドでファイルを削除します。ls で確認すると、削除されたことがわかります。
まとめ
「新Linuxコマンド演習25」では、リダイレクトの基本を学びました。
| 操作 | 記号 | 説明 |
|---|---|---|
| 上書き出力 | > | 標準出力をファイルに上書き |
| 追記出力 | >> | 標準出力をファイルに追記 |
| エラー出力 | 2> | 標準エラー出力をファイルに上書き |
| エラー追記 | 2>> | 標準エラー出力をファイルに追記 |
リダイレクトを使いこなすことで、ログの保存・デバッグ・スクリプトの自動化が格段に便利になります。
次回の演習では、これらをさらに発展させ、パイプ( | )との組み合わせについて学んでいきましょう。
