リダイレクトとは
「リダイレクト」は出力の向かう先を変更することで
Linuxの場合、おもにコマンドの結果を画面に表示するのではなく、ファイルに保存するときなどに
使用されることが多い。
Linuxでのリダイレクト
一般的にリダイレクトはWebページで使用することが多く、あるページに移行した際に別ページに飛ぶことを
リダイレクトと呼んでいる。ページのURLを変えたときや、会社の変更によりドメインが変わったなどでよく
使われている。
Linuxでは基本的に標準出力や標準入力、標準エラー出力の「向かう先を変更する」ことを意味している。
標準出力はコマンドを打った際に画面に表示されるもののことを指す。
リダイレクトが使用される場面
リダイレクトは「標準出力をファイルへ出力する」際に使用することが多い
すなわち「画面に出力される文字列をファイルへ保存できる」ということである。
コマンドラインでは画面は文字列で大量に埋め尽くされるため、確認しようと思っても
何もしない場合、結果が上へどんどん流れていってしまう。
そのような場合にリダイレクトという手段を使用し、ファイルに結果を保存、閲覧できると
とても便利である。
「標準入力」「標準出力」「標準エラー出力」
「標準入力」、「標準出力」、「標準エラー出力」の3つはLinuxに限らずほとんどのOSに
備え付けられている。
OSが入出力を識別するため、この3つには割り振り番号がついており、Linuxではデフォルトで
・標準入力には0
・標準出力には1
・標準エラー出力には2
が割り振られている。
pipeとリダイレクトの違い
pipeとリダイレクトではデータを引き渡す先の対象が異なる
・pipeの場合:処理結果をコマンドに引き渡す。
・リダイレクトの場合:処理結果をファイルに引き渡す
リダイレクトの種類
「コマンド > ファイル」 :コマンド結果をファイルに書き込む
「コマンド < ファイル」 :ファイルの中身をコマンドの標準出力へ
「コマンド >> ファイル」:コマンドの出力結果をファイルへ追記
「コマンド 2> ファイル」:エラー出力をファイルへ書き込む
「コマンド 2>> ファイル」:エラー出力をファイルへ追記
「コマンド > ファイル 2>&1」:ファイルに標準出力と標準エラー出力を書き込む
「コマンド >> ファイル 2>&1」:ファイルに標準出力と標準エラー出力を追記
「コマンド結果をファイルに書き込む」リダイレクトの実行
[takechi_masahiro@localhost ~]$ ls
:: archive.tar file1
[takechi_masahiro@localhost ~]$ echo Hello_World! > testfile.txt
[takechi_masahiro@localhost ~]$
[takechi_masahiro@localhost ~]$ ls
:: archive.tar file1 testfile.txt
[takechi_masahiro@localhost ~]$ cat testfile.txt
Hello_World!
「ファイルの中身を標準出力へ出力する」リダイレクトの実行
[takechi_masahiro@localhost ~]$ vi testfile.txt
Hello_World!
~
~
~
~
[takechi_masahiro@localhost ~]$ cat < testfile.txt
Hello_World!
「コマンドの出力結果をファイルへ追記する」リダイレクトの実行
[takechi_masahiro@localhost ~]$ vi testfile.txt
Hello_World!
~
~
~
~
[takechi_masahiro@localhost ~]$ echo Redirect_Test >> testfile.txt
[takechi_masahiro@localhost ~]$ vi testfile.txt
Hello_World!
Redirect_Test
~
~
~
~
~
「エラー出力をファイルへ書き込む」リダイレクトの実行
[takechi_masahiro@localhost ~]$ ls aaa 2> testfile.txt
[takechi_masahiro@localhost ~]$ vi testfile.txt
ls: aaa にアクセスできません: そのようなファイルやディレクトリはありません
~
~
~
「エラー出力をファイルへ追記する」リダイレクトの実行
[takechi_masahiro@localhost ~]$ ls bbb 2>> testfile.txt
[takechi_masahiro@localhost ~]$ vi testfile.txt
ls: aaa にアクセスできません: そのようなファイルやディレクトリはありません
ls: bbb にアクセスできません: そのようなファイルやディレクトリはありません
~
~
~
「ファイルに標準出力と標準エラー出力を書き込む」リダイレクトの実行
標準出力
[takechi_masahiro@localhost ~]$ echo Redirect_Test > testfile.txt 2>&1
[takechi_masahiro@localhost ~]$ cat testfile.txt
Redirect_Test
標準エラー出力
[takechi_masahiro@localhost ~]$ ls aaa > testfile.txt 2>&1
[takechi_masahiro@localhost ~]$ cat testfile.txt
ls: aaa にアクセスできません: そのようなファイルやディレクトリはありません
「ファイルに標準出力と標準エラー出力を追記する」リダイレクトの実行
標準出力
[takechi_masahiro@localhost ~]$ cat testfile.txt
ls: aaa にアクセスできません: そのようなファイルやディレクトリはありません
[takechi_masahiro@localhost ~]$ echo Redirect_Test >> testfile.txt 2>&1
[takechi_masahiro@localhost ~]$ cat testfile.txt
ls: aaa にアクセスできません: そのようなファイルやディレクトリはありません
Redirect_Test
標準エラー出力
[takechi_masahiro@localhost ~]$ cat testfile.txt
ls: aaa にアクセスできません: そのようなファイルやディレクトリはありません
Redirect_Test
[takechi_masahiro@localhost ~]$ ls aaa >> testfile.txt 2>&1
[takechi_masahiro@localhost ~]$ cat testfile.txt
ls: aaa にアクセスできません: そのようなファイルやディレクトリはありません
Redirect_Test
ls: aaa にアクセスできません: そのようなファイルやディレクトリはありません
- 前ページ
- 次ページ