【初心者向け】set -o noclobber でリダイレクトの上書き事故を防ぐ方法

Tips

Linuxのコマンドラインで、うっかりファイルを上書きしてしまった経験はありませんか?

例えば、以下のような単純なコマンド。

$ echo "hello" > important.txt

これを実行すると、important.txt の中身は一瞬で上書きされ、元に戻せなくなります。


そこで便利なのが set -o noclobber

noclobber は リダイレクトによるファイルの上書きを防ぐ シェルのオプションです。

設定方法は超シンプル。

$ set -o noclobber

これだけで、既存ファイルに対して > を使った単純なリダイレクトはエラーになります。


試してみよう

$ echo "test" > important.txt
zsh: file exists: important.txt

上書きを防いでくれました!


強制的に上書きしたいときは?

上書きが必要な場合は >| を使います。

$ echo "force" >| important.txt

これなら、明示的に「本当に上書きする」と伝えることができます。


解除したいとき

$ set +o noclobber

おすすめ

• .bashrc や .zshrc に追記しておくと、常に有効になります。

# ~/.zshrc
set -o noclobber

まとめ

操作動作
set -o noclobber上書き防止
set +o noclobber上書き防止を解除

リダイレクトは日常的に使う分、事故も多いです。

大事なファイルを守るためにも noclobber を習慣にしておくと安心です。

コメント

タイトルとURLをコピーしました