Zsh

zsh中的雙重rm驗證

  • March 4, 2022

當我在 zsh 中執行 rm * 時,我得到如下資訊:

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

首先 zsh 詢問我是否確定要刪除所有文件,然後 rm 詢問每個特定文件。

我如何才能進行 zsh 驗證?

消息“zsh: sure you want to delete all the files”是一個 zsh 功能,特別是通過呼叫一個使用glob 擴展或之前rm的參數呼叫的命令來觸發。您可以使用 關閉此功能。*``something/*setopt rm_star_silent

消息“rm: remove regular file”來自rm命令本身。預設情況下不會顯示,僅在rm使用 option 呼叫時才會顯示-i。如果您不想要此消息,請不要傳遞該選項。即使沒有-irm如果您嘗試刪除只讀文件,也會提示確認(帶有不同的消息);您可以通過傳遞選項來刪除此確認-f

由於您沒有通過-i命令行,rm因此可能是別名rm -i(它也可能是函式、非標準包裝器命令或不同的別名,但別名rm -i是迄今為止最合理的)。一些預設配置包含alias rm='rm -i'在它們的 shell 初始化文件中;這可能是您的發行版或系統管理員設置的內容,或者您​​從某處獲取並添加到配置文件中然後忘記的內容。檢查您~/.zshrc的別名定義rm。如果找到,請將其刪除。如果找不到,請添加命令以刪除別名:

unalias rm

引用自:https://unix.stackexchange.com/questions/135084