LinuCレベル1 GNUとUnixのコマンド 問9
GNUとUnixのコマンド/ストリーム、パイプ、リダイレクトの使用リダイレクト記法の説明として、誤っているものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「GNUとUnixのコマンド」に対応。実際の試験問題ではありません)
- Acommand > file は、fileが既に存在する場合、内容を上書きする
- Bcommand 2>&1 は、標準エラー出力を標準出力と同じ場所へ統合する
- Ccommand >> file は、fileの末尾に追記する
- Dcommand < file は、fileの内容を標準エラー出力へ書き込む
正解:D
解説
> は標準出力を指定したファイルへ上書きリダイレクトし、>> は末尾に追記します。2>&1 は、ファイルディスクリプタ2(標準エラー出力)の出力先をファイルディスクリプタ1(標準出力)の出力先と同じにする記法で、標準エラー出力と標準出力を1つの流れにまとめたいときに使います。< は逆にファイルの内容を標準入力として読み込む入力リダイレクトで、標準エラー出力への書き込みではありません。
選択肢ごとの解説
- A誤り(正しい記述)。>はファイルが存在する場合、内容を上書き(切り詰めてから書き込み)します。
- B誤り(正しい記述)。2>&1は標準エラー出力を標準出力と同じ出力先に統合します。
- C誤り(正しい記述)。>>はファイルの末尾に追記します。
- D正しい(誤っている記述)。<は入力リダイレクトで、fileの内容を標準入力として読み込みます。標準エラー出力への書き込みではありません。