[英]Creating alias (or something similar) that activates when cd into a specific folder
[英]Linux creating an alias schema (a family of aliases) or something with similar effect
我个人习惯的一组别名如下:
alias ..="cd ../"
alias ...="cd ../../"
alias ....="cd ../../../"
我将它们添加到我的 bash 配置中,有时会按照相同的模式添加更多。
问题:如何为任意数量的点获得相同的功能? 即使输入.^n
(n 个点)导致应用cd ../
命令 n 次。
也许单独的alias
无法表达这一点,但似乎 Bash(它具有循环和条件)可能能够做到这一点。 不幸的是,我对它的了解还很初级。 也许命令的名称更改使其不可能。 我只是不知道。
这是另一种更简单的方法:
name=".."
cmd="cd .."
for _ in {1..10}
do
alias "$name=$cmd"
name+="." cmd+="/.."
done
这是一种方法:
strrepeat() {
local str=$1 count=$2
local i result
for ((i=1; i<=count; i++)); do
result+=$str
done
printf "%s" "$result"
}
ascend() {
local count=${1:-1}
cd "$(strrepeat "../" "$count")"
}
for i in {1..8}; do
alias ".$(strrepeat "." $i)"="ascend $i"
done
这会生成 8 个别名,这些别名可以提升明显的目录数量。
如果我们将..
的别名更改为
alias ..=ascend
然后你可以写.. 6
,而不是.......
朴素..
仍然上升1级。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.