Por ejemplo, ¿puedo configurar:
gb = cd /media/Dan/evolution
... de modo que cada vez que ejecuto gb
en bash, ¿puedo cd
ese directorio en particular?
Encontré algo en línea: el alias
comando. Pero parece que no puede hacer el trabajo anterior.
¿Es posible hacer lo? ¿Cómo?
alias gb='cd /media/Dan/evolution'
posix
queja, así que no solobash
.Respuestas:
Sólo tipo:
Para que esta configuración sea permanente (para que se mantenga después de reiniciar o abrir otra consola) agregue esta línea al archivo ~ / .bashrc (suponiendo que use bash como su shell predeterminado)
fuente
Alternativa al alias
Esto define la función de shell gb, que no toma argumentos, y realiza cd / media / Dan / evolution. Al igual que con otras sugerencias, esto se puede agregar a ~ / .bashrc
fuente
type gb
funcionará si es un alias o una función.{ echo 'true() { : ; }' >./script ; . ./script ; command -V true ; command -V /usr/bin/true ; }
-true is a shell function\n/usr/bin/true is /usr/bin/true
- los\n
caracteres eran líneas nuevas literalmente en la salida.Es posible y
alias
es el comando que estás buscando. Por ejemplo,alias ll="ls -l"
en bash te permitirá escribir enll
lugar dels -l
. Tenga en cuenta que no se utilizan espacios al configurar un alias.man alias
Puede ser útil también.fuente
Alternativamente, es posible escribir un programa en C que llame al comando deseado y guardarlo en / usr / bin.
Para compilarlo, vaya al directorio donde se guardó la fuente (en bash) y ejecute (es posible que necesite sudo):
Después de una investigación más exhaustiva aquí , me di cuenta simplemente lanzando su comando
system()
no funcionará para los comandos integrados de bash. Es por eso que necesita crear una instancia de un bash interactivo y hacer eco de sus comandos. Es demasiado complicado y probablemente inútil, a menos que desee, digamos, acortar una llamada a un script de shell (ensome_script
lugar desh ~/radgeRayden/Scripts/some_script
).Referencia para la función system ()
fuente
sh -c "cd /media/Dan/evolution"
no funciona. Sugerencia: subshellcd
Dejando a un lado los problemas de subshell, ¿cuál es la ventaja de envolver un comando de shell en el programa c, cuando podría fácilmente (o más fácilmente) poner ese comando en un script de shell?