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