つなぐ

INPUT · スライド

消さずに書き足す(`>>`)

01 / 06

`>` は消える。だから `>>`

前のレッスンで、>黙って上書きすることを見たね。日記やログのように積み上げていきたいファイルには使えない。

そのための書き方が >> だよ。矢印を2つ重ねるだけ。

```
echo 1月20日 ラーメン >> nikki.txt
```

いまある中身は残ったまま、いちばん下に足されるんだ。

~ $ cat nikki.txt1月5日 はじめた1月8日 つづけた~ $ echo 1月20日 ラーメン >> nikki.txt~ $ cat nikki.txt1月5日 はじめた1月8日 つづけた1月20日 ラーメン

02 / 06

`>` と `>>` の違いはこれだけ

| 書き方 | 無いとき | あるとき |
| --- | --- | --- |
| > | 作る | 中身を消して書く |
| >> | 作る | いちばん下に足す |

無いときの動きは同じだよ。違うのは「すでに中身があるとき」だけ。

迷ったら >> のほうが安全だよ。足しすぎは直せるけれど、消えたものは戻らないからね。

03 / 06

どの道具の出口でも足せる

>>> と同じで、コマンドの側は何も知らないんだ。だからどの道具にも効くよ。

```
date >> kiroku.txt # 時刻を足す
ls >> kiroku.txt # 一覧を足す
wc -l namae.txt >> kiroku.txt # 数えた結果を足す
cat betsu.txt >> kiroku.txt # 別のファイルの中身を足す
```

「記録を1つのファイルに集めていく」というのは、この形でやるんだ。

これがログ(記録)の作り方の正体だよ。プログラムがやっていることも、結局これと同じなんだ。

04 / 06

`date` で時刻を残す

記録にはいつのことかが要るよ。それを出すのが date だよ。

```
date
```

打つと、いまの日時が1行で出るよ。これを >> で足せば、「いつ何をしたか」の記録になるんだ。

この学習環境の時計は世界標準時(UTC)で動いているので、日本の時刻とは 9 時間ずれているよ。気にしなくていいけれど、時刻がずれて見えたらそれが理由だよ。

~ $ dateFri Aug 21 06:49:10 UTC 2026

05 / 06

`>>` なら自分自身も少しは平気

> で同じファイルに向けると中身が消えたよね。>> はどうだろう。

```
cat f.txt >> f.txt
```

これは消えない(足すだけなので、先に空にしないから)。でもやめておこう。読みながら足すので、運が悪いと同じ行が延々と増え続けることがあるんだ。

「同じファイルを読みながら書く」は、> でも >> でも避けるのが正しいよ。別の名前に出してから入れ替えるのが安全な形だよ。

06 / 06

さあ、打ってみよう

nikki.txt に2行の日記、kiroku.txt に見出しの1行が入っているよ。

この回は同じ >> を何度も打つことになる。でも足す元のコマンドが毎回変わるよ。echodatelswccatfindgrep

覚えてほしいのは「>> の左には何でも置ける」ということ。それが分かれば、この回は終わりだよ。