У меня есть доступ к нескольким удаленным учетным записям, которые я монтирую через sshfs в подкаталогах $ HOME/SSHFS. Чтобы напомнить, что я не работаю с локальными файлами, я установил $PROMPT_COMMAND
в функцию prmt_cmd
, где я установил другой $PS1
если $PWD
соответствует $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
}
(В настоящем определении я делаю некоторые другие вещи, но это не имеет значения.) Тем не менее, unalias
жалуется, когда псевдонимы не существуют, что означает, что я получаю три сообщения об ошибках перед каждым приглашением, когда я не в SSHFS/*. unalias
, кажется, нет переключателя, чтобы заставить его замолчать. Итак, мой вопрос: есть ли лучший способ добиться того, чего я хочу? Может быть, я просто делаю это (полностью) неправильно.
В случае необходимости, $BASH_VERSION = 4.1.5(1)-release
на Ubuntu 10.10.