リダイレクトとは & やり方【Bash】

ここではコマンド入出力におけるリダイレクトについて解説します。

リダイレクトとは

リダイレクトの概要

e-Wordsから引用した説明を見てみましょう。

OSのシェルの機能の一つで、コマンドやプログラムを実行する際のデータの入力元や出力先を利用者の指定したファイルに切り替えることをリダイレクションあるいはリダイレクトという。一般的な構成・設定のコンピュータでは入力をキーボードから、出力をディスプレイ(モニタ)へ行うようになっている(標準入力/標準出力)が、リダイレクションによって指定したファイルから読み込んだデータを入力としたり、出力したデータを指定したファイルに書き込んだりすることができる。

IT用語辞典 e-Words

要するに一般的にはキーボードやモニタを使うけど、入力をキーボード以外から行ったり、出力をモニタ以外にすることができるということですね

例えば、入力をファイルにして、出力をプリンターにするということもできるんですよ!

ちなみにリダイレクト(redirect)は「方向を向け直す」という意味があります。
「出力の方向を向け直す(リダイレクト)」、「入力の方向を向け直す(リダイレクト)」ということです。
語源がわかると覚えやすいですよね。

bashでリダイレクトしてみる

リダイレクトの構文

構文意味
> filefileがなければ作成して出力
fileがあれば上書き
< filefileの内容を入力に渡す
>> filefileがなければ作成して出力
fileがあれば既存の内容に追加する

出力

一般的な出力

普通はモニタに出力される

echo "I love python!"
#---出力結果---#
#I love python! がモニタに出力される

リダイレクトを使った出力

ファイルに書き込んでみる

echo "I love python!" > w.txt
# I love python! が w.txt に書き込まれる

cat w.txt
#---出力結果---#
#I love python!

echo "I love ruby!" >> w.txt
#I love ruby! が w.txt に追加で書き込まれる

cat w.txt
#---出力結果---#
#I love python!
#I love ruby!

入力

一般的な入力

sort
#キーボードから入力する
banana
peach
apple
orange
[ctrl + z]

リダイレクトを使った入力

r.txtの内容をこんな感じとすると

banana
peach
apple
orange

こんな感じに出力される

sort < r.txt
#---出力結果---#
#apple
#banana
#orange
#peach

出力&入力

出力と入力ができたら組み合わせたくなるのが人の性だからやってみるぜ

入力と出力コマンド < 入力ファイル名 > 出力ファイル名
sort < r.txt > w.txt

cat r.txt
#---出力結果---#
#banana
#peach
#apple
#orange

cat w.txt
#---出力結果---#
#apple
#banana
#orange
#peach

コメント