このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】リダイレクト

リダイレクトとは
リダイレクトは、標準入出力をキーボードやモニタではなく、ファイルに切り替える機能です。これにより、プログラムの入力や出力をファイルから読み込んだり、ファイルに書き出したりすることができます。

入力リダイレクト
入力リダイレクトは、標準入力をキーボードからファイルに切り替える機能です。これを利用することで、頻繁に使用するデータをファイルに保存し、そのファイルをコマンドに一気に読み込ませることができます。例えば、「cat < input.txt
」は、「input.txt
」ファイルの内容を「cat
」コマンドに渡します。

出力リダイレクトとエラー出力リダイレクト
- 出力リダイレクトは、標準出力をモニタからファイルに切り替える機能です。これにより、コマンドの出力をファイルに保存できます。
- エラー出力リダイレクトは、標準エラー出力をモニタからファイルに切り替える機能です。これにより、エラーメッセージをファイルに保存できます。
基本的なリダイレクト記号の一覧
リダイレクトの種類 | 記号 | 意味 | 使い方例 |
---|---|---|---|
入力リダイレクト | < | ファイルの内容を標準入力として使用する | command < input.txt |
出力リダイレクト(上書き) | > | 標準出力をファイルに書き込む(既存の内容は上書きされる) | command > output.txt |
出力リダイレクト(追記) | >> | 標準出力をファイルに追記する(既存の内容を保持したまま追加する) | command >> output.txt |
エラー出力リダイレクト | 2> | 標準エラー出力をファイルに書き込む(既存の内容は上書きされる) | command 2> error.txt |
エラー出力リダイレクト(追記) | 2>> | 標準エラー出力をファイルに追記する(既存の内容を保持したまま追加する) | command 2>> error.txt |
標準出力とエラー出力を同時にリダイレクト(上書き) | >& | 標準出力と標準エラー出力の両方を同じファイルに書き込む(既存の内容は上書きされる) | command > output.txt 2>&1 |
標準出力とエラー出力を同時にリダイレクト(追記) | >>& | 標準出力と標準エラー出力の両方を同じファイルに追記する(既存の内容を保持したまま追加する) | command >> output.txt 2>>&1 |
リダイレクトの使用例
1.入力リダイレクト

サンプルファイルの作成:input.txt
まず、以下の内容を持つサンプルファイル「input.txt
」を作成します。このファイルには複数行のテキストデータが含まれています。これを入力リダイレクトで使用することで、コマンドに一括してデータを渡すことができます。
・「nano input.txt
」コマンドを実行します。
nanoエディタを起動して、「input.txt」ファイルを作成します。
user01@ubuntu-vm:~$ nano input.txt
以下の内容を入力します。
Hello, this is the first line.
This is the second line.
And here is the third line.
入力したら、「Ctrl + S」キーを入力して保存、「Ctrl + X」キーでnanoエディタを終了させます。
・「cat < input.txt」コマンドを実行します。
このコマンドを実行すると、「input.txt
」の内容が標準入力として「cat
」コマンドに渡され、その結果が標準出力(ターミナル)に表示されます。具体的には、次のような出力が得られます。
user01@ubuntu-vm:~$ cat < input.txt
Hello, this is the first line.
This is the second line.
And here is the third line.
このように、入力リダイレクトを使用することで、ファイル内のデータをコマンドに直接渡すことができます。これは、特定のデータセットを何度もコマンドに入力する必要がある場合に非常に便利です。
2.出力リダイレクト

・「ls > output.txt」コマンドを実行し、「cat output.txt」コマンドで作成されたファイルの内容を確認します。
このコマンドは、「ls
」コマンドの出力を「output.txt
」ファイルに書き込みます。
user01@ubuntu-vm:~$ cat output.txt
input.txt
output.txt
snap
ダウンロード
テンプレート
デスクトップ
ドキュメント
ビデオ
ピクチャ
ミュージック
公開
3.エラー出力リダイレクト

・「ls non_existent_file 2> error.txt」コマンドを実行し、「cat error.txt」コマンドで作成されたファイルの内容を確認します。
存在しないファイルに対するエラーメッセージを「error.txt
」ファイルに書き込みます。
user01@ubuntu-vm:~$ ls non_existent_file 2> error.txt
user01@ubuntu-vm:~$ cat error.txt
ls: 'non_existent_file' にアクセスできません: そのようなファイルやディレクトリはありません
4.標準出力とエラー出力の同時リダイレクト

・「ls non_existent_file input.txt > ls.err 2>&1」コマンドを実行し、「cat ls.err」コマンドで作成されたファイルの内容を確認します。
「ls
」コマンドの標準出力と標準エラー出力の両方を「ls.err
」に書き込みます。
user01@ubuntu-vm:~$ ls non_existent_file input.txt > ls.err 2>&1
user01@ubuntu-vm:~$ cat ls.err
ls: 'non_existent_file' にアクセスできません: そのようなファイルやディレクトリはありません
input.txt
作成したファイルと作成されたファイルの削除
作成したファイルとリダイレクトによって作成されたファイルを削除します。
・「rm input.txt output.txt error.txt ls.err
」コマンドを実行し、「ls」コマンドで削除されたかどうかを確認します。
user01@ubuntu-vm:~$ rm input.txt output.txt error.txt ls.err
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
まとめ
これらのリダイレクトを使用することで、Linux上でのコマンド操作がより柔軟かつ効率的に行えるようになります。