ファイルと>>ファイルは次の点で結果が変わることがあります。-aはファイルをO_APPENDでopenしてwriteする。>>ファイルはファイルの末尾にlseekしてwriteする。あるプロセスが>>ファイルを実行しているとき、lseekとwriteの間で、別のプロセスが割り込んで同じファイルに対して>>ファイルを実行すると、2つのプロセスのwrite結果が混ざってしまうことがあります。10のshではそうでした。shスクリプトでログ出力していたときに、ログファイルが乱れていたので、その原因を調べた結果です。