標準出力の追加

出力リダイレクトには、新しい情報を既存のファイルの最後に追加できるという、巧妙な方法があります。> 記号を使用した時と同じように、標準出力以外の場所へ情報を送るようにシェルに伝えます。

ただし、>> を使用すると、情報の置き換えではなく、追加が行われます。

説明より例証しようと思いますので、 2 つの作成済みファイル -- sneakers.txthome.txt -- を追加出力記号によって連結しましょう。home.txt の情報をsneakers.txt の情報に追加したい場合は、次のように入力します。

cat home.txt >> sneakers.txt

そして、次のように入力して、ファイルをチェックします。

cat sneakers.txt

末尾に home.txt の内容が加えられています。

このコマンドを入力した時にシェルに伝えた内容は、「home.txt ファイルからの出力を sneakers.txt ファイルへ追加しなさい」ということです。

既存のファイルを使用して出力を追加することにより、ファイルを新規作成した場合と比較して、1 つあるいは 2 つのステップ (とディスクの領域) を省くことができました。

ファイル sneakers.txtsaturday の結果をここで比較して、それが同一であることを確認しましょう。比較を行うには、次のように入力します。

cat sneakers.txt; cat saturday

最初に sneakers.txt、その後 saturday の内容が表示されます (Figure 15-14を参照)。

追加するときには置き換えないでください

出力を追加するときは、2 つの不等号 (>>) を含めなければならないことを忘れないでください。そうしないと、情報の追加先としたいファイルそのものが置き換えられてしまいます。

Figure 15-14. コマンドの配列とファイルの比較

最後のコマンドでのセミコロンの使い方に興味がある場合、この章を読み進めてください。この章の後半で説明します。)

まとめ: 出力を追加するには、2 つの不等号 (>>) を使用します。例えば、cat addthisfile >> tothisfile