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

Executing output dynamically on different commands in terminal or in unix

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

我需要对 .bashrc 做哪些更改才能做到这一点?

有人可以帮我解决这个问题吗?

我想如果你不使用别名你可以做一个简单的脚本来做到这一点

#!/bin/bash
cd /path/to/yourdir/

并用 go 命名并放入你的 $PATH 我建议你将它放在 /usr/local/bin/ 路径中,因为这是用户应该具有写入权限并放置他们的路径可执行 binaries/scripts in.

所以你可以

$go 105

将您的目录更改为您想要的目录。

编辑

事实上,您也可以根据 tldp

使用别名来做到这一点
#!/bin/bash

shopt -s expand_aliases
alias go='cd  /path/to/your/dir/'

还有这个

source ./testalias.sh
go 1234

但是您仍然需要为此输入命令go

for ((i=1;i<=1000;i+=1)); do alias "$i=cd \"/path/to/mydir/$i\""; done

根据对其他答案的评论进行编辑,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

使用find并通过awk解析输出,构造一个别名命令,可以存储在一个文件srcfile中

find /path/to/mydir -type d | awk -F\/ '{ print "alias "$NF"=\"cd \\""[=10=]"\\"\"" }' > srcfile

然后在 bash.rc 文件中:

source srcfile

这会将别名加载到您的 bash shell。