最終更新日:2026年10月3日
fe fe-technology computer-system
まず結論
リダイレクトとは、シェルでプログラムの標準入力や標準出力の接続先を切り替える機能です。
基本情報技術者試験では、まず次の3つを切り分けます。
| 記号 | 何をする? | 覚え方 |
|---|---|---|
< |
ファイルを標準入力にする | ファイル → プログラム |
> |
標準出力をファイルにする | プログラム → ファイル(上書き) |
>> |
標準出力をファイルに追加する | プログラム → ファイル(追記) |
「入力か出力か」→「出力なら上書きか追記か」の順で見ると、選択肢を切りやすくなります。
キーボード / ファイル
画面 / ファイル
直感的な説明
普段、コマンドはキーボードから入力を受け取り、結果を画面へ出すと考えられます。
キーボード → プログラム → 画面
入力 出力
リダイレクトを使うと、この入口や出口をファイルへ付け替えられます。
入力を変更: ファイル → プログラム
出力を変更: プログラム → ファイル
つまり、「データの流れる向きを変える」と考えると分かりやすいです。
定義・仕組み
標準入力と標準出力
シェルから起動したプログラムには、一般に標準入力・標準出力などの入出力があります。
- 標準入力(stdin):プログラムがデータを受け取る入口
- 標準出力(stdout):通常の結果を出す出口
リダイレクトは、その接続先を変更します。
「<」は入力
command < input.txt
input.txt の内容を、コマンドの標準入力として使います。
input.txt → command
「>」は出力
command > result.txt
コマンドの標準出力を result.txt に送ります。
command → result.txt
既存ファイルがある場合、通常は内容を上書きします。
「»」は追記
command >> result.txt
こちらも出力先はファイルですが、既存内容を残して末尾へ追記します。
既存の内容
────────
今回の出力 ← 追加
科目Aでどう出る?
科目Aでは、「シェルのリダイレクトで何ができるか」を文章で問われることがあります。
次の3つは、すべて可能です。
標準入力をファイルに切り替える → <
標準出力をファイルに切り替える → >
標準出力をファイルに追加する → >>
したがって、選択肢に
「標準出力をファイルに追加することはできない」
とあれば、>> があるので切れます。
同様に、
「標準入力をファイルに切り替えることはできない」
も、< があるので誤りです。
向きを確認
< は入力元をファイルへ切り替える
どんな場面で使う?
例えば、コマンドの結果を後で確認したい場合は、画面ではなくファイルへ出力できます。
command > result.txt
すでにあるログを残しながら結果を追加したい場合は、>> を使います。
command >> result.txt
FE試験では、実際のコマンドを細かく暗記するより、標準入力・標準出力のどちらを、どこへつなぎ替えているかを見ることを優先します。
よくある誤解・混同
| 誤解 | 正しい見方 |
|---|---|
< と > は似ているので同じ |
< は入力、> は出力 |
> は既存ファイルに追記する |
> は基本的に上書き |
>> は入力を表す |
>> は標準出力の追記 |
| リダイレクトは出力だけを変更できる | 標準入力もファイルへ切り替えられる |
> と >> は同じ |
出力先は同じでも、上書きと追記が違う |
試験中は記号の形だけで迷わず、次の順で考えます。
1. 入力? 出力?
2. 出力なら、上書き? 追記?
公式技術資料で確認する
シェルのリダイレクトは、POSIXのShell Command Languageで定義されています。
FE試験ではPOSIXの細かな仕様まで覚える必要はありません。<=入力、>=出力、>>=追記を優先して整理します。
まとめ(試験直前用)
<:標準入力をファイルから受け取る>:標準出力をファイルへ出す(上書き)>>:標準出力をファイルへ追加する(追記)- 迷ったら「入力か出力か」→「上書きか追記か」で切り分ける