Você não pode fazer exatamente isso, mas com um pouco de trabalho e bash 4, você pode implementar o recurso.
Quando o bash 4 encontra um comando indefinido, ele procura por uma função do shell chamada command_not_found_handle
e, se a encontrar, ela a chama, passando o nome do comando não encontrado como $1
e os argumentos restantes como $2
. .
Portanto, você poderia, por exemplo, manipular seus comandos cd
e ffdir
adicionando algo assim ao seu arquivo .bashrc
. (nota: eu não ligo com insensibilidade a maiúsculas e minúsculas aqui, então ainda há algum trabalho a fazer.)
command_not_found_handle() {
case $1 in
cd*) if [[ -d "$HOME/Documents/${1#cd}" ]]; then
cd "$HOME/Documents/${1#cd}"
return 0
fi
# On failure, falls through to the error message
;;
ffdir*) find . -type d -iname "${1#ffdir}"
return 0
;;
# Etc...
esac
# If nothing else works, just do what bash would have done
printf "%s: command not found\n" "$1" >&2
return 127
}