是否可以在 bash 中定义命令?

Zen*_*Zen 26 command-line bash cd-command

例如,我可以设置:

gb = cd /media/Dan/evolution
Run Code Online (Sandbox Code Playgroud)

...这样每次我gb在 bash 中执行时,我都可以cd到那个特定的目录?

我在网上找到了一些东西:alias命令。但是好像做不到上面的工作。

有可能做到吗?如何?

sch*_*obe 51

只需输入:

alias gb='cd /media/Dan/evolution'
Run Code Online (Sandbox Code Playgroud)

要使此设置永久(以便在重新启动或打开另一个控制台后保持不变),请将这一行添加到文件 ~/.bashrc (假设您使用 bash 作为默认 shell)


use*_*217 40

替代别名

gb() { cd /media/Dan/evolution; }
Run Code Online (Sandbox Code Playgroud)

这定义了 shell 函数 gb,它不接受任何参数,并执行 cd /media/Dan/evolution。与其他建议一样,这可以添加到 ~/.bashrc

  • 此外,此选项更灵活,因为它允许您在函数定义中添加 *custom* 逻辑以接受参数并执行您需要的任何操作。别名只允许传递参数和执行*预定义的操作*。 (12认同)
  • 并不真地。您可以输入:declare -f gb 来查看它的作用 (7认同)
  • @PaulCalabro 更好的是,如果它是别名 * 或 * 函数,`type gb` 将起作用。 (5认同)

sch*_*iba 11

这是可能的,并且alias是您正在寻找的命令。例如alias ll="ls -l"在 bash 中会让你输入ll而不是ls -l. 请注意,设置别名时没有使用空格。man alias也很有用。