在终端或 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。
我在某个路径下有名为 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。