LinuCレベル1 101試験の例題と解説

主題1.03GNUとUnixのコマンド

1.03.3ストリーム、パイプ、リダイレクトの使用

このエントリーをはてなブックマークに追加

今回は、101試験の試験範囲から、「1.03.3 ストリーム、パイプ、リダイレクトの使用」についての例題を解いてみます。今回はリダイレクトの方法について確認しておきましょう。

Linucレベル1 101試験 出題範囲


例題

標準エラー出力のみをerror.txtに書き込むためのコマンドで正しいものを1つ選択してください。

  1. find / -name "*.conf" 2> error.txt
  2. find / -name "*.conf" > error.txt
  3. find / -name "*.conf" >> error.txt
  4. find / -name "*.conf" > error.txt 2>&1

※この例題は実際の試験問題とは異なります。


解答と解説

正解は、「1. find / -name "*.conf" 2> error.txt」です。

標準エラー出力をファイルに出力するためには、「コマンド 2> ファイル」を実行します。

リダイレクトは、入力元や出力先をコントロールできる機能です。コマンドの実行結果をファイルに保存したい場合や、コマンドへの入力をあらかじめ用意しておいたファイルを使いたい場合などにリダイレクトを使用します。

リダイレクト記号の「>」は、標準出力の切り替えを行います。
書式と説明は以下の通りです。

コマンド > ファイル:コマンドが標準出力に出力したデータを、ファイルに出力します。
 ファイルが存在しない場合は新たに作成されます。
 ファイルが存在する場合は上書きされます。
コマンド >> ファイル:コマンドが標準出力に出力したデータを、ファイルに追記します。
コマンド 2> ファイル:標準エラー出力をファイルに出力します。
コマンド 2>> ファイル:標準エラー出力をファイルに追記します。
コマンド > ファイル 2>&1:標準出力と標準エラー出力をファイルに出力します。
コマンド >> ファイル 2>&1:標準出力と標準エラー出力をファイルに追記します。

よって、正解は「1. find / -name "*.conf" 2> error.txt」となります。

また、リダイレクト記号の「<」は、標準入力の切り替えを行います。
「コマンド < ファイル」を実行した場合、入力をキーボードからファイルに切り替えます。つまり、ファイルを読み込んでコマンドの標準入力として渡す動きになります。

選択肢の解説は以下です。

[1. find / -name "*.conf" 2> error.txt]
正解です。
リダイレクト記号「2>」を使用することで、標準エラー出力をリダイレクトすることができます。標準エラー出力のみをファイルに保存し、後から確認したいときなどに便利です。

[2. find / -name "*.conf" > error.txt]
誤りです。
リダイレクト記号「>」を使用した場合、標準出力をリダイレクトします。そのため、このコマンドでは標準出力をファイルに書き込んでいます。

[3. find / -name "*.conf" >> error.txt]
誤りです。
リダイレクト記号「>>」を使用した場合、標準出力を追記モードでリダイレクトします。そのため、このコマンドでは標準出力をファイルに追記しています。

[4. find / -name "*.conf" > error.txt 2>&1]
誤りです。
「2>&1」を使用した場合、標準出力と標準エラー出力の両方をリダイレクトします。
そのため、このコマンドでは標準出力と標準エラー出力をファイルに書き込んでいます。

リダイレクトを使った標準出力の切り替えは、コマンドの結果をログとしてファイルに保存したい場合などに利用することができます。また標準出力のリダイレクトだけでなく、標準入力のリダイレクトについても使えるようにしておきましょう。


例題作成者

株式会社デージーネット OSS研究室 橋本知里

ページトップへ