我可以访问几个远程帐户,我通过 $HOME/SSHFS 子目录中的 sshfs 挂载这些帐户。为了提醒我我不使用本地文件,我设置$PROMPT_COMMAND了一个 function prmt_cmd,在那里我设置了一个不同的$PS1if $PWDmatching $HOME/SSHFS*。现在,要添加一些额外的保护,我想补充的-i自动标记的rm,mv并cp命令每当我在一个子目录是$HOME/SSHFS。所以我最终得到了类似的东西
function prmt_cmd () {
if [[ $PWD == $HOME/SSHFS* ]] ; then
PS1=some prompt
alias rm='rm -I'
alias mv='mv -i'
alias cp='cp -i'
else
# Reset the PS1, remove aliases
PS1=my default prompt
unalias rm mv cp
fi
}
Run Code Online (Sandbox Code Playgroud)
(在实际定义中,我做了一些其他的事情,但这无关紧要。)但是,unalias当别名不存在时会抱怨,这意味着当我不在 SSHFS/* 中时,在每个提示之前我都会收到三个错误消息。unalias似乎没有关闭它的开关。所以我的问题是:有没有更好的方法来实现我想要的?也许我只是在做(完全)错了。
如果相关,$BASH_VERSION = 4.1.5(1)-release在 Ubuntu 10.10 上。
Rya*_*ler 14
只需重定向输出。
unalias rm mv cp >/dev/null 2>/dev/null
Run Code Online (Sandbox Code Playgroud)