有没有办法引用在bash中输入的命令的其他部分,类似于历史扩展

tim*_*one 2 unix bash zsh

我经常需要在bash命令中引用一段文本,例如:

git mv _fav-locations-cluster.html.erb partials/_fav_locations_cluster.html.erb
Run Code Online (Sandbox Code Playgroud)

编辑#1

请注意,它来自破折号 - >下划线

我想做一些事情(其中$ 0和tab会被评估或者其他东西):

git mv _fav-locations-cluster.html.erb partials/'$0 and tab'
Run Code Online (Sandbox Code Playgroud)

其中$ 0和tab将引用第一个参数.这在bash或zsh中是否可行?

che*_*ner 5

历史扩展确实可以指当前输入的行:

$ git mv _fav-locations-cluster.html.erb partials/!#:2:gs/-/_/
Run Code Online (Sandbox Code Playgroud)

!#指当前行.:2指定第二个单词(文件名),并:gs/-/_/替换该单词中所有-with的_出现.扩展后,命令是

$ git mv _fav-locations-cluster.html.erb partials/_fav_locations_cluster.html.erb
Run Code Online (Sandbox Code Playgroud)