假设我有一个长文件名,例如longfilename
。为了简洁起见,我们假设“longfilename”实际上更长,输入起来也更复杂。无论如何,我想long12345filename
从命令行将其重命名为。目前我知道运行命令
mv longfilename long12345filename
但是,在这个例子中,我能做的最好的就是输入mv long[tab] long12345filename
...基本上是大量的手动输入。有没有办法通过调出当前文件名并将光标移动到要插入/删除新字符的位置来编辑文件名?
答案1
如果你使用 bash,并且你有一个可以清楚表达的文件名转换规则(例如,12345
在第一个之后插入g
),你可以这样做
长Tab !#:$:s/g/g12345/
以 开头的单词!
是历史引用。
!#
指的是当前命令(到目前为止)。
:$
表示该行的最后一个单词,因此, 之后的 指mv longfilename
的!#:$
是longfilename
。 最后是简单的搜索和替换。:s/old/replacement/
答案2
答案3
就我个人而言,我采用迭代的方式进行操作,这种方式是可行的,但我确信还有更好的方法。
mv long[tab][enter]
(显示错误,缺少操作数)
[up arrow][cntrl+e][space]!$
(显示错误,相同的文件)
[up arrow]
现在您在命令行上有 mv longfilename longfilename,您可以将光标移动到您想要的位置并在现场编辑。