У меня есть доступ к нескольким удаленным учетным записям, которые я монтирую через 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.
