- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UNIX: catコマンドで無限ループ???)
UNIX: catコマンドで無限ループの原因と対処法
このQ&Aのポイント
- catコマンドを使用してテキストファイルを追記しようとすると、無限ループになり巨大なファイルが生成される現象が起こります。
- この現象は、catコマンドによってファイルの内容を表示する際に、その内容を再度ファイルに追記しようとするためです。
- この問題を解決するには、catコマンドの代わりにテキストエディタを使用し、コピー&ペーストによってファイルを追記する方法を取ると良いでしょう。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
cat a.txt >> a.txt とすると、 まず現在のa.txtの内容を読み出し、a.txtに追記されます。 すると、 aaa\n (←次はここから読み込まれる)(catにより、追加されている→) aaa\n となります。ファイルには続きがあるので、それが読み込まれてa.txtに追記されます aaa\naaa\n (←次はここから読み込まれる)(上の続きで追加されている→) aaa\n まだファイルの続きがあるので読み込まれて追記されます.以下同様 これが延々と続く理由です。 出力を別のファイルにするとか cat a.txt a.txt > b.txt 別のファイルにコピーしてから追記するとか cp a.txt c.txt cat c.txt >> a.txt
お礼
ありがとうございます! 納得いきました!