Além da resposta @ Chrishrown, aqui está outra abordagem: ignorar diretórios
Com essa abordagem, você pode:
vi ./*
e iniciará o vi em todos os arquivos no diretório atual, mesmo que contenha subdiretórios, ignorando esses subdiretórios
vi() {
for arg do
[ -d "$arg" ] || set -- "$@" "$arg"
shift
done
[ "$#" -gt 0 ] && command vi "$@"
}
Este apenas faz vi, em qualquer argumento que não seja um diretório ... Portanto, não ensinará você a usar "vi" para "cd";)
E não chamará vi se você acabou de fazer: vi algum diretório (ou seja, digitou errado vi em vez de cd). Mas ele não cdará automaticamente automaticamente, então você ainda se lembra de que precisa digitar cd ^^
Usei uma maneira "compatível" para alterar as listas de argumentos, de modo que seja portátil para muitas plataformas.