我有一个特定的工作区,我必须导航到它,它非常长,令人烦恼。就像/真的/该死的/令人讨厌的/长/而且/它/需要/一段时间/才能/输入。我想编写一个 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$