リダイレクトを使用してファイルを置き換えるときの確認要求

リダイレクトを使用してファイルを置き換えるときの確認要求

私は不注意なターミナルドライバであり、誤ってファイルを削除するのを恐れて、alias rm='rm -i'for rm、、mvなどのエイリアスを使用しますcp。ファイルリダイレクトチェック(例echo "I'm silly" > very_important_file.txt:)に対して同様の動作を得るにはどうすればよいですか?

一般的な状況は、私が通常追加(>>>の代わりに置換()を使用するため、中程度の重要なファイルを誤って削除することです。どんな提案がありますか?

答え1

正確な動作を得る方法はないと思います-iが、noclobberすでに存在するファイルを上書きするのを防ぐように設定しました。

これを見てページユースケースを確認してください。

次のコマンドを試すことができます(必要に応じてスタートアップファイルに含めます)。

$ set -o noclobber

例:

$ ls > ls.out
$ set -o noclobber
$ ls > ls.out
bash: ls.out: cannot overwrite existing file
$

修正する:

以下の有用なコメントで@jsbillingsが述べたように、次のいずれnoclobberbashを上書きするには、次のようにします。>|

私は主にtcshcshvariant)を使用しているので、オーバーライド演算子は次のようになります。>!

関連情報