你可以写一个这样的函数:
up() {
local path i
for (( i=0; i < $1; i++ )); do
path+=../
done
cd "$path"
}
Run Code Online (Sandbox Code Playgroud)
把它放在你的~/.bashrc
,然后你可以运行 egup 7
到 7 个目录。您也可以覆盖 cd 以允许cd up 7
,但只创建一个新命令更短,更省事。
小智 5
如果要在两个目录之间切换,可以使用cd -
在两个目录之间切换。
cd
如果您想为您可能经常使用的一些目录添加书签,请使用pushd
和popd
-> google 获取更多信息。
或者,如果您知道您必须cd
经常与第七祖父母联系,您可以创建一个别名,例如:
alias cd7up='cd ../../../../../../../'
Run Code Online (Sandbox Code Playgroud)
小智 3
创建别名可以作为临时解决方案,但是如果您想要更永久的东西而不会将您限制在预设中,我建议编写一个函数来执行此操作并将其包含在您的 .bashrc 文件中。
# Go up directory tree X number of directories
function up() {
COUNTER="$@";
# default $COUNTER to 1 if it isn't already set
if [[ -z $COUNTER ]]; then
COUNTER=1
fi
# make sure $COUNTER is a number
if [ $COUNTER -eq $COUNTER 2> /dev/null ]; then
nwd=`pwd` # Set new working directory (nwd) to current directory
# Loop $nwd up directory tree one at a time
until [[ $COUNTER -lt 1 ]]; do
nwd=`dirname $nwd`
let COUNTER-=1
done
cd $nwd # change directories to the new working directory
else
# print usage and return error
echo "usage: up [NUMBER]"
return 1
fi
}
Run Code Online (Sandbox Code Playgroud)