
私はbashシェル、BSD unix、macosを使用していますが、これは他の多くのunixシェルにも当てはまると思います。このnoclobber
オプションは時々便利です。
> find . -name z
> set -o noclobber
> echo "dog" > z
> echo "dog" > z
-bash: z: cannot overwrite existing file
しかし、新しいシェルを起動せずに設定を解除する方法は?奇妙なことに、 、 、 および 類似の項目を検索しても、bash undo set noclobber
答えunix un-do set noclobber
はすぐに出ませんでした。
次のいずれも無効です。
> unset -o noclobber
-bash: unset: -o: invalid option
unset: usage: unset [-f] [-v] [name ...]
> unset noclobber
> echo "dog" > z
-bash: z: cannot overwrite existing file
> set -o clobber
-bash: set: clobber: invalid option name
答え1
人々は次の答えを見つけることができます。「set -x」を元に戻す方法は?だから私たちは
> set +o noclobber
> echo "dog" > z
>
やや直感的ではありません。+
何かをオフにしてオンに-
します。
もちろんunset noclobber
、これは私が作成した可能性のある名前付き変数をすべて削除しますnoclobber
。これはUNIXオプションには影響しません。