在终端或unix中的不同命令上动态执行输出

时间:2017-08-04 08:24:57

标签: bash unix alias

我在某个路径下有一个名为1到1000的子文件夹,让我们说/ path / to / mydir。所以我想创建自定义别名,这样一些方法,当我输入105然后它应该带我到/ path / to / mydir / 105。屏幕后面我需要执行 cd /path/to/mydir/105命令。

我应该在.bashrc上进行哪些更改才能执行此操作?

有人可以帮我吗?

3 个答案:

答案 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中。