[英]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/${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
為這個
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
使用find和awk解析輸出,構造一個別名命令,該命令可以存儲在文件srcfile中
find /path/to/mydir -type d | awk -F\/ '{ print "alias "$NF"=\"cd \\\""$0"\\\"\"" }' > srcfile
然后在bash.rc文件中:
source srcfile
這會將別名加載到您的bash shell中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.