Linuxとコマンドラインの基礎

$ echo a > f.txt
$ echo b > f.txt
$ echo c >> f.txt
$ cat f.txt

上のコマンドを順に実行したとき、最後の cat で表示される内容として、正しいものはどれか。

  1. Ac の1行だけ
  2. Bb と c の2行
  3. Ca、b、c の3行
答えと解説を見る

正解:B. b と c の2行

「>」は出力をファイルに書き込むリダイレクトで、ファイルがすでにあれば中身を空にしてから書き込みます(上書き)。「>>」はファイルの末尾に追加します。1行目で a が書かれ、2行目の > で中身が b だけになり、3行目の >> で c が後ろに足されるので、f.txt は b と c の2行になります。大事なファイルを > で消してしまわないよう、bash では set -o noclobber で上書きを禁止することもできます。

  • A. 「>>」は上書きではなく追加なので、2行目で書いた b は残ります。
  • B. 正しい。> で b だけになり、>> で c が追加されます。
  • C. 2行目の「>」はファイルを空にしてから書き込むので、1行目の a は残りません。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. 上のように、a.txt はあり nofile はないディレクトリで、最後のコマンドを実行した。結果として、正しいものはどれか。
  2. 上の操作で、最後のコマンドが出力する値として、正しいものはどれか。
  3. 上の操作で、最後の grep が出力する行として、正しいものはどれか。
  4. 選択肢では、行の先頭の空白を除いて示す。上の操作で、最後のパイプラインが出力する行として、正しいものはどれか。
  5. サーバのログファイル /var/log/app.log に後から追記される行を、追記されるたびに画面に表示し続けたい。適切なコマンドはどれか。