Bash
使用重定向替換文件時要求確認
我是一個粗心的終端驅動程序,害怕意外刪除文件,因此使用了一些別名,例如
alias rm='rm -i'
forrm
,mv
,cp
. 我怎樣才能獲得類似的文件重定向確認行為(例如echo "I'm silly" > very_important_file.txt
)。常見的情況是我通常使用替換(
>
)而不是附加(>>
),所以我最終不小心刪除了一些中間重要的文件。你有什麼建議?
我認為沒有辦法獲得 的確切行為
-i
,但我已經noclobber
設置了它可以防止覆蓋已經存在的文件。有關使用範例,請參閱此頁面。
您可以嘗試這樣的命令(如果您喜歡,請將其包含在您的啟動文件中)
$ set -o noclobber
例子:
$ ls > ls.out $ set -o noclobber $ ls > ls.out bash: ls.out: cannot overwrite existing file $
更新:
正如@jsbillings 在下面的有用評論中提到的那樣,
noclobber
可以bash
使用>|
由於我主要使用
tcsh
(一種csh
變體),因此覆蓋運算符是>!