我如何创建一个可以带我进入文件夹的 shell 脚本?

我如何创建一个可以带我进入文件夹的 shell 脚本?

我有一个特定的工作区,我必须导航到它,它非常长,令人烦恼。就像/真的/该死的/令人讨厌的/长/而且/它/需要/一段时间/才能/输入。我想编写一个 shell 脚本,只需cd我进入它,但当然,这是行不通的。有没有其他方法可以让我只需 cd 进入这个目录,而不必麻烦地输入它?

不要告诉我复制粘贴。

谢谢你!

答案1

您不能使用 shell 脚本来更改目录,因为该脚本在不同的进程中运行,并且该子进程无法改变当前 shell 进程的环境。

您需要编写一个可在当前交互式 shell 中运行的函数或别名。以下其中一个可以工作:

alias go='cd /really/damn/annoyingly/long/and/it/takes/a/while/to/type'
# or
go() { cd /really/damn/annoyingly/long/and/it/takes/a/while/to/type; }

选择一个,将其保存在您的~/.bashrc中,输入source ~/.bashrc,然后您就可以开始了。

答案2

符号链接

您可以使用符号链接,这是一种链接到另一个文件的特殊文件类型:

ln -s "/really/damn/annoyingly/long/and/it/takes/a/while/to/type" link_name

这将创建一个名为 的符号链接,link_name链接到/really/damn/annoyingly/long/and/it/takes/a/while/to/type

然后,在 shell 中:

~$ cd link_name
~/link_name$ 

Shell 变量

或者创建一个变量:

variable_name='/really/damn/annoyingly/long/and/it/takes/a/while/to/type'

将其放入您的 ~/.bashrc 中,运行source ~/.bashrc,然后您就可以简单地cd "$variable_name"

答案3

实际上,您可以在脚本中使用 cd —— 只需将cd命令放入脚本中即可。不过,您必须像这样执行它:. ./script1.前面的 会使脚本在当前 shell 中运行,而不是启动新 shell。

~$ cat script1
cd ./ISO
~$ . ./script1
~/ISO$

相关内容