Tos*_*ock 50 linux command-line
我正在处理经常导致深度嵌套文件夹(/path/to/project/com/java/lang/whatever 等)的 java 项目,有时希望能够向上跳转,例如,4 个目录级别。键入 cd ../../../.. 很痛苦,我不想符号链接。cd 是否有一些标志可以让您进入多个目录级别(在我看来,它类似于 cd -u 4)?不幸的是,我找不到任何专门用于 cd 的手册页,而只是获得了无用的“内置”页面。
小智 41
一个简单的函数,也有别名:
function cd_up() {
cd $(printf "%0.s../" $(seq 1 $1 ));
}
alias 'cd..'='cd_up'
Run Code Online (Sandbox Code Playgroud)
(~/.bashrc
如果您希望在每个实例中都使用它,您可以定义它)。
使用起来很简单:
$ cd.. 10
Run Code Online (Sandbox Code Playgroud)
Tom*_*ych 14
一种不需要任何设置的简单、低技术的解决方案。但是,仅适用于具有bash
-style 命令编辑功能的shell 。
cd ..
小智 7
原来正确的答案是“cd +n”,其中 n 是您想要上升的级别数。太糟糕了,这在任何地方都没有记录!
您可以编写一个函数(它必须是一个函数,因为您想要更改 shell 本身的状态,即工作目录;外部命令只会影响其自己的进程)。
这是一个函数,它将提升作为参数传递的多个级别(默认 1):
up() {
# default parameter to 1 if non provided
declare -i d=${@:-1}
# ensure given parameter is non-negative. Print error and return if it is
(( $d < 0 )) && (>&2 echo "up: Error: negative value provided") && return 1;
# remove last d directories from pwd, append "/" in case result is empty
cd "$(pwd | sed -E 's;(/[^/]*){0,'$d'}$;;')/";
}
Run Code Online (Sandbox Code Playgroud)
像这样使用它:
up 4
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
80243 次 |
最近记录: |