是否有任何快捷方式可以引用MV命令中第一个参数的路径?

Jac*_*lla 10 linux bash mv

我经常发现自己使用mv重命名文件.例如

mv app/models/keywords_builder.rb app/models/keywords_generator.rb
Run Code Online (Sandbox Code Playgroud)

这样做我需要写第二个参数的路径(确定,标签完成).在这个例子中它不是太糟糕,但有时路径是深度嵌套的,它似乎是相当多的额外打字.

有没有更有效的方法来做到这一点?

Mik*_*kel 20

另一种方式:支撑扩张.

mv app/models/keywords_{builder,generator}.rb
Run Code Online (Sandbox Code Playgroud)

一般来说,

before{FIRST,SECOND}after
Run Code Online (Sandbox Code Playgroud)

扩展到

beforeFIRSTafter beforeSECONDafter
Run Code Online (Sandbox Code Playgroud)

所以它对其他重命名也很有用,例如

mv somefile{,.bak}
Run Code Online (Sandbox Code Playgroud)

扩展到

mv somefile somefile.bak
Run Code Online (Sandbox Code Playgroud)

它适用于bashzsh.

更多例子:


Mik*_*kel 11

你可以像这样使用历史扩展:

mv app/modules/keywords_builder.rb !#^:h/keywords_generator.rb
Run Code Online (Sandbox Code Playgroud)
  1. ! 介绍历史扩张.
  2. # 指的是当前正在键入的命令
  3. ^ 意思是第一个参数
  4. :h 是获取"head"的修饰符,即没有文件部分的目录

它支持bashzsh.

文档:

  • 我不知道是给你投票还是把你烧死了. (8认同)