![Shell - 向上导航‘n’个目录](https://linux22.com/image/919554/Shell%20-%20%E5%90%91%E4%B8%8A%E5%AF%BC%E8%88%AA%E2%80%98n%E2%80%99%E4%B8%AA%E7%9B%AE%E5%BD%95.png)
我经常发现自己在做这样的命令
cd ../../../../../
有没有可以使用的快捷方式,即 cd ../n 次?
答案1
不,目前没有现成的命令,但编写一个命令很简单。将这些行添加到您的~/.bashrc
文件中(感谢 D. Ben Knoble 提供指出变量应该是local
):
function ncd(){
local path=""
for ((i=1;i<=$1;i++)); do
path="../$path"
done
echo "Moving to $path" >&2
cd "$path"
}
保存文件,打开一个新终端,现在你可以使用 向上移动 N 个目录ncd N
。例如:
$ pwd
/home/terdon/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
$ ncd 5
Moving to ../../../../../
$ pwd
/home/terdon/dir1/dir2/dir3/dir4
$ ncd 2
Moving to ../../
$ pwd
/home/terdon/dir1/dir2
答案2
在 Windows 世界中,Alt + 向上箭头可在 Windows 资源管理器中导航到父目录。因此,我在 中做了类似的事情~/.inputrc
:
"\33\33[A": "cd ..\n"
然后按 Alt + 向上箭头移动到终端中的父目录。当然,您必须按多次才能移动到更高位置,但我发现它非常快。您也可以根据自己的喜好更改快捷方式。
答案3
您可以轻松创建别名或 shell 函数来执行给定的任务。我个人使用这些:
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
等等,在我的 中手动定义最多很多点.bashrc
。
相反,shell 函数可以轻松地采用数字参数,并cd ..
循环执行多次。