8 votos

¿Puedo modificar un comando en el terminal para hacer cosas adicionales?

He mirado en alias, funciones... pero no he venido para arriba con algo satisfactorio. Permítanme darles un par de escenarios:

  • 95% de veces que me cd en una carpeta, siga para arriba con un ls comando.
  • 90% de veces que me mkdir , me cd yo mismo en él.

Usted consigue la idea.

¿Cuál sería la manera "más limpia" de unen los comandos (o cualquier otra funcionalidad)?

13voto

gozzilli Puntos 121

Tiendo a hacer un nuevo comando para esto. Creo que incluso sería lógico para combinar en una sola.

go() {
    if [ -d "$1" ]; then
        cd "$1" && ls
    else
        mkdir -p "$1" && echo "Created directory $1" && cd "$1"
    fi
}

6voto

He intentado añadir cosas como estas a mi .bashrc :

cd() {
    command cd "$@"
    command ls
}

mkdir() {
    command mkdir "$@"
    command cd "$@"
}

Sin embargo, he encontrado que esto puede estropear secuencias de comandos que utilizan los comandos cambiados, y el manejo de la opción puede ser frágil (por ejemplo, si usted quiere pasar -p a las mkdir de comandos, también se pasa a cd ). Mejor sería definir alias con nombres diferentes (digamos, c o mcd ).

5voto

Michael Zhou Puntos 167

Creo que las funciones son el camino a seguir. Algo así como

chglist() {
    cd "$1" && ls
}

como un ejemplo.

4voto

MrMojoRisin Puntos 2001

Usted puede poner estas líneas en su .zsrhc o .bashrc

function cd {
builtin cd "$@" && ls -F
}
[ -z "$PS1" ] && return

Resultado ->

enter image description here

[ -z "$PS1" ] comprueba si el $PS (interactive símbolo de variable) es "longitud cero" (-z). Si es de longitud cero, esto significa que no ha sido establecida, por lo que Bash no se debe ejecutar en modo interactivo. El && de regreso sale de abastecimiento .bashrc en este punto, bajo estas condiciones.

http://unix.stackexchange.com/questions/20396/make-cd-automatically-ls

Btw, gracias por la pregunta, es realmente genial :)

Editar :

Otra solución será la de integrar el comando ls para su pronta, estoy seguro de que usted puede hacer eso con OhMyZsh ;)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X