如何通过在现有名称中插入新字符来在 Linux CLI 中有效地重命名文件?

如何通过在现有名称中插入新字符来在 Linux CLI 中有效地重命名文件?

假设我有一个长文件名,例如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,您可以将光标移动到您想要的位置并在现场编辑。

相关内容