Bash

為什麼sudo cp src dst會忽略/ etc中的無破壞規則?

  • November 19, 2017

在使用時,我的全域首選項alias cp='cp -iv'被忽略了。sudo``zsh

我正在設置一個新系統,並且正在為我的使用者帳戶嘗試 zsh。root 使用者仍然有 bash。在/etc我有:

/etc/bash.bashrc
/etc/zsh/zshenv

這兩個都有上面的別名,alias cp='cp -iv'.

在使用者的目錄中,這些都不包含/etc全域配置中的命令。

~/.zshenv
/root/.bashrc 

如果我切換到 root 使用者su -並嘗試使用副本破壞文件,我會得到正確的提示,cp: overwrite 'fruits/apple.txt?'. 家庭使用者也是如此。但是,如果我sudo在 zsh 中為家庭使用者執行複制命令,該文件將被覆蓋!使用 bash,我以前沒有遇到過這個問題,所以我不知道還能去哪裡找。

sudo使用別名的解決方法,例如sudo cp

alias sudo='sudo '

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