我经常发现自己在执行这样的命令
cd ../../../../../
Run Code Online (Sandbox Code Playgroud)
有没有我可以使用的快捷方式可以 cd ../ n 次?
ter*_*don 38
不,没有现成的命令,但写一个是微不足道的。将这些行添加到您的~/.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"
}
Run Code Online (Sandbox Code Playgroud)
保存文件,打开一个新终端,您现在可以使用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
Run Code Online (Sandbox Code Playgroud)
小智 15
来自 Windows 世界,Alt + Up Arrow 导航到 Windows 资源管理器中的父目录。所以我做了这样的事情~/.inputrc:
"\33\33[A": "cd ..\n"
Run Code Online (Sandbox Code Playgroud)
然后按 Alt + Up Arrow 移动到终端中的父目录。当然你必须多次按下才能移动得更高,但我发现它非常快。您也可以根据自己的喜好更改快捷方式。
egm*_*ont 14
您可以轻松创建别名或 shell 函数来执行给定的任务。我个人使用这些:
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
Run Code Online (Sandbox Code Playgroud)
等等,在我的.bashrc.
shell 函数可以轻松地接受一个数字参数,并cd ..在循环中执行多次。
类似于@terdon 的回答,使用和输出稍微更自然:
# go up
up() {
local count="${1:-1}"
local path=../
while (( --count > 0 )) ; do
path="$path"../
done
echo "cd -- $path"
cd -- "$path"
}
Run Code Online (Sandbox Code Playgroud)
这定义了一个函数up,它具有以下属性:
up n将上n目录up将正好上一个目录(即,默认为n1)shopt -s autocd(因此在--技术上是不必要的)OLDPWD被正确设置为 的当前值PWD,而不是中间目录之一。这意味着它up 5; cd -按预期工作。