質問: 「noclobber」を設定するデメリットはありますか? zshは、コマンドが与えられたすべてのファイルを破壊できると仮定すると、>* オプションnoclobberを設定することをお勧めします。いつでも>| file bashとzshの両方でデフォルトのclobber動作を使用する場合。 (zshでは、代替構文>!file)。posixの互換性のため、noclobberはデフォルトで設定解除されていると思いますが、念のため:noclobberを設定することの欠点はありますか?とにかくnoclobberをインタラクティブシェルにのみ設定する方法はありますか?
回答: _~/.bashrc_(noclobberの場合)または_~/.zshrc_(より正確にはbashの場合は_$zdotdir/.zshrc_)でzshシェルオプションを設定すると、インタラクティブシェルセッションでアクティブになります。非対話型シェル(スクリプト)はこれらのファイルを読み取りません。シェルオプションは通常、親シェルから継承されません。これは、スクリプトが明示的にこれらのファイルを提供しない限り、既存のスクリプトの動作を変更せずにそれらのファイルでオプションを設定できることを意味します。私が見ることができるこのことの唯一の欠点は、少なくとも最初は、オプションを設定したことを繰り返し忘れることです。後で、これらすべての種類のものと同様に、実際にファイルを上書きしたくない場合でも、_>|_を常用し始めます(rm、cp、mvのエイリアスを持つ人々のように、_-i_オプションは常に設定され、最終的には常にコマンドラインで_-f_を使用し始めます)。