temp.txt
というファイルがあるとします。 cat
プログラムを使用して、このファイルの内容をmyfile.txt
の末尾に追加します。myfile.txt
が存在しない場合は作成し、存在する場合は追加します。
私はこれらの可能性を検討しています:
cat temp.txt > myfile.txt
または
cat temp.txt >> myfile.txt
どちらのコマンドも希望どおりに機能しているようです。だから、私の質問は、>
と>>
の違いは何ですか?御時間ありがとうございます。
>
はファイルに書き込み、既存のコンテンツを上書きします。 >>
はファイルに追加します。
man bash
から:
出力のリダイレクト
出力のリダイレクトにより、Wordの拡張によって名前が付けられたファイルが開かれ、ファイル記述子nに書き込むか、nが指定されていない場合は標準出力(ファイル記述子1)に書き込まれます。ファイルが存在しない場合は作成されます。存在する場合は、ゼロサイズに切り捨てられます。
出力をリダイレクトするための一般的な形式は次のとおりです。
[n]>Word
リダイレクト演算子が>で、組み込みのセットに対するnoclobberオプションが有効になっている場合、Wordの展開に起因する名前のファイルが存在し、通常のファイルであると、リダイレクトは失敗します。リダイレクション演算子が> |の場合、またはリダイレクション演算子が>で、set builtinコマンドのnoclobberオプションが有効になっていない場合、Wordで指定されたファイルが存在していてもリダイレクトが試行されます。
リダイレクトされた出力の追加
この方法で出力をリダイレクトすると、Wordの展開によって名前が付けられたファイルが開かれ、ファイル記述子nに追加されます。nが指定されていない場合は、標準出力(ファイル記述子1)が開かれます。ファイルが存在しない場合は作成されます。
出力を追加するための一般的な形式は次のとおりです。
[n]>>Word
>
の場合
例えば。 cat abc.txt > pqr.txt
pqr.txt
の内容はabc.txt
の内容に置き換えられます
>>
の場合
例えば。 cat abc.txt >> pqr.txt
abc.txt
の内容は、最後にそのpqr.txt
が追加されます。