本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第22回|ファイルは育てられる | 上書きと追記のちがい|やさしい UNIX & Linux

やさしい UNIX & Linux | 第22回
上書きと追記|ファイルへの書き込みは2種類ある
第 21 回では、echo で文字をファイルに書き込み、cat で内容を表示し、less で長いファイルを読む方法を確認しました。その中で >(リダイレクト)を使い、echo "文字列" > ファイル名 で書き込みを行いました。
この回では、ファイルへの書き込みにある 2 つの異なる動作を整理します。上書き(ファイルの中身を入れ替える)と 追記(ファイルの末尾に内容を足す)です。どちらを使うかによって、ファイルの扱い方が大きく変わります。
上書き|> でファイルの内容を入れ替える
> は出力をファイルに書き込むリダイレクトですが、書き込む前にファイルの中身を空にするという動作をします。これが「上書き」です。
echo First > sample.txt
cat sample.txtcat sample.txt を実行すると First だけが表示されます。sample.txt が存在した場合、それ以前に入っていた内容はすべて消えて First だけになります。ファイルがなければ新規作成されます。
大事なファイルに > を使うと中身が失われます。上書きは「元には戻せない」操作なので、対象のファイルを確認してから使う習慣をつけておくと安全です。
追記|>> でファイルの末尾に内容を足す
>>(二重のリダイレクト)は、ファイルの既存の内容を残したまま、末尾に新しい内容を追加します。これが「追記」です。
echo Second >> sample.txt
cat sample.txtcat sample.txt を実行すると、次のように表示されます。
First
SecondFirst は消えずに残り、その下に Second が追加されています。>> は既存の内容を壊しません。ファイルがなければ > と同様に新規作成されます。
追記を繰り返すとファイルが「育つ」
追記を続けると、ファイルの内容が積み重なっていきます。Linux のログファイルがこの仕組みで動いています。プログラムが動作するたびに記録を >> で追加していくため、ログは時系列で内容が増え続けます。
echo Third >> sample.txt
echo Fourth >> sample.txt
cat sample.txt実行すると First から Fourth まで 4 行が表示されます。「ファイルが育つ」という感覚がここにあります。上書きは入れ替え、追記は積み重ねです。
上書きと追記の使い分け
どちらを使うかは、目的によって変わります。
- >(上書き):設定ファイルを新しい内容で丸ごと置き換えたいとき。スクリプトで毎回最新の結果だけを記録したいとき
- >>(追記):ログや履歴として記録を積み重ねていきたいとき。既存の内容を保ちながら新しい情報を加えたいとき
誤って > で大事なファイルを上書きしてしまうミスは、Linux 操作での典型的な失敗のひとつです。「このファイルに今から書くのは上書きか追記か」を意識するだけで、こうした事故を防げます。
まとめ|> は上書き、>> は追記
第 22 回で確認したポイントをまとめます。
- リダイレクト
>:ファイルの中身を空にしてから書き込む(上書き)。ファイルがなければ新規作成 - リダイレクト
>>:ファイルの末尾に内容を追加する(追記)。既存の内容は消えない - 追記を繰り返すと内容が積み重なる。Linux のログファイルはこの仕組みで動いている
- 上書きは元には戻せない操作。対象ファイルを確認してから使う
> と >> の違いを知っているだけで、ファイル操作の安全性が大きく変わります。この 1 文字の差に、Linux の「道具を正確に使い分ける」という思想が表れています。
次回予告
第 22 回では、>(上書き)と >>(追記)の違いと使い分けを確認しました。
第 23 回は、この連載の最終回です。これまでに作成したファイルやディレクトリを整理し、Linux のファイル操作の基本をひとまず完走します。作って・書いて・育てたファイルを片づけながら、「入口を歩ききった」という感覚を確認していきます。









