第4回|UNIX Cafe「リダイレクト編」

当サイトではアフィリエイト広告を利用して商品を紹介しています。

この記事は約9分で読めます。
第4回|UNIX Café「リダイレクト編」

> UNIXのリダイレクト「 > >> < 」
> 標準出力・標準入力の仕組みを初心者にもわかりやすく紹介します。

UNIX Cafe|リダイレクト編【 >  >>  < 】

Minna
Minna

ユニ先生、echo "Hello"って入力すると、文字がそのまま表示されますよね。これをファイルに保存したいときって、どうすればいいんですか?

UNIX
UNIX

いい質問だね。そんなときに使うのが「リダイレクト」だよ。
コマンドの出力を「ファイルに流す」仕組みなんだ。

コマンド紹介

>|コマンドの出力を「ファイルに流す」

Minna
Minna

あっ!「>」って、ファイルに書き出すって意味なんですね!

UNIX
UNIX

そのとおり。> は「上書き」なんだ。
もし同じ名前のファイルがあったら、内容は消えて新しく書き直されるよ。

echo "Hello" > hello.txt

>>|ファイルの最後に追記する

Minna
Minna

うわっ、気をつけないといけませんね💦
じゃあ、追加したいときはどうするんですか?

そんなときは >> を使うんだ。
これならファイルの最後に追記できる。

echo "こんにちは" >> hello.txt

<|ファイルの内容をコマンドに渡す

Minnna
Minnna

おおっ、上書きと追記の違い、わかってきました!
でも「<」は何に使うんですか?

UNIX
UNIX

< はその逆で、「ファイルの内容をコマンドに渡す」ときに使うんだ。
たとえば cat < hello.txt は、cat hello.txt と同じ意味なんだよ。

cat < hello.txt
Minna
Minna

なるほど〜、コマンドの“入口”と“出口”をつなぎ替える感じなんですね!

UNIX
UNIX

その感覚、バッチリだよ!
リダイレクトを使いこなせると、コマンドの世界がぐっと広がるんだ。

2>|エラーメッセージをファイルに書き出す

Minna
Minna

lsでファイル名を間違ったらエラーが出ました!

ls nofile.txt
ls: nofile.txt: No such file or directory
UNIX
UNIX

2> を使うとエラーメッセージをファイルに保存できるよ。

ls nofile.txt 2> error.log

&>|成功メッセージもエラーも全てファイルに書き出す

Minna
Minna

ユニ先生、このあいだ教えてもらった「2>」ってすごく便利でした!
でも、標準出力とエラーの両方をまとめてファイルにしたいときって、どうすればいいんですか?

UNIX
UNIX

おお、もうそこに気づいたんだね!
そんなときに使うのが &> だよ。
出力もエラーも、ぜんぶひとつのファイルに書き出すんだ。

ls hello.txt notfound.log &> result.log

ログを開けば全てのメッセージを確認できるから、あとでゆっくり内容を見たいときに便利ですよ。

コーヒーブレイク:ユニ先生のひとこと

ユニ先生

リダイレクトは「データの流れをデザインする」ことなんだよ。使いこなせたら、もう立派なUNIXマスターだね!

まとめ

  • >:コマンドの出力を「ファイルに流す」
  • >>:ファイルの最後に追記する
  • <:ファイルの内容をコマンドに渡す
  • 2>:エラーメッセージをファイルに書き出す
  • &>:全てのメッセージをファイルに書き出す
Minna
Minna

今日のリダイレクト、すごくおもしろかったです!
出力もエラーも“流れ”をコントロールできるなんて、ちょっと魔法みたいですね

UNIX
UNIX

うん、まさにその通りだね。
UNIXの世界では、「データの流れをどうつなぐか」がとても大切なんだ。
ファイルに書き出したり、追記したり、まとめたり。
リダイレクトを使いこなせれば、作業をもっと自由に、もっと静かに進められるんだよ。

タイトルとURLをコピーしました