Bash
在執行之前在命令中展開萬用字元
假設我想輸入這樣的內容:
rm build/* tmp/*
我即將執行它,但我想在執行之前擴展萬用字元,以便驗證將要發生的事情。我怎樣才能做到這一點?
這是我正在尋找的工作流程:
$ rm build/* tmp/* <press some magic key> $ rm build/foo build/bar tmp/wiz tmp/buzz
(編輯)另一個範例工作流程:
$ # Check what is in directory: $ ls -0 foo1 foo2 bar $ # I want to delete foo1 and foo2, but want to do so carefully: $ rm f*o <press some magic key> $ rm foo1 foo2
我可以像這樣擴展其他內容:
cd `hg root` <Ctrl-x> cd /users/bob/myMercurialRepository
(因為我有
Control-x shell-expand-line
我的~/.inputrc
)。我雖然
man bash
查看了 globbing 的描述,但找不到任何有趣的東西。
這取決於你的 shell 的編輯模式。例如,我正在使用 vi 模式和類型
Esc
,*
並且萬用字元將得到擴展。
怎麼樣
echo rm build/* tmp/*
或者,在我的版本中
bash
,在萬用字元之後立即點擊tab``tab
會為我提供匹配文件的列表。要“小心刪除文件”,我建議要麼使用互動標誌
rm
,要麼再次使用前綴echo
echo rm -i f*o rm -i f*o
不過,誠然,兩者都不會預先為您提供首選列表。