我在某个路径下有一个名为1到1000的子文件夹,让我们说/ path / to / mydir。所以我想创建自定义别名,这样一些方法,当我输入105然后它应该带我到/ path / to / mydir / 105。屏幕后面我需要执行
cd /path/to/mydir/105
命令。
我应该在.bashrc上进行哪些更改才能执行此操作?
有人可以帮我吗?
答案 0 :(得分:3)
我认为如果你不使用别名,你可以制作一个简单的脚本来做到这一点
#!/bin/bash
cd /path/to/yourdir/${1}
并使用go
命名并放入$PATH
我建议您将其放在/usr/local/bin/
路径中,因为该路径是用户应具有写入权限并放入他们的可执行二进制文件/脚本。
所以你可以
$go 105
将您的目录改为您想要的目录。
实际上你也可以根据tldp
使用别名#!/bin/bash
shopt -s expand_aliases
alias go='cd /path/to/your/dir/${1}'
并使用此
source ./testalias.sh
go 1234
但您仍然需要为此
键入命令go
答案 1 :(得分:3)
for ((i=1;i<=1000;i+=1)); do alias "$i=cd \"/path/to/mydir/$i\""; done
编辑后评论其他anwser,find
不需要在第一级检索目录:使用glob扩展
for d in /path/to/mydir/*/; do
dn=${d%/} # remove trailing /
alias "${dn##*/}=cd \"$d\"" # remove path prefix from directory for alias name
done
答案 2 :(得分:0)
使用find并通过awk解析输出,构造一个可以存储在文件srcfile中的别名命令
find /path/to/mydir -type d | awk -F\/ '{ print "alias "$NF"=\"cd \\\""$0"\\\"\"" }' > srcfile
然后在bash.rc文件中:
source srcfile
这会将别名加载到您的bash shell中。