在命令行中使用正则表达式重命名文件

在命令行中使用正则表达式重命名文件

*我在尝试将文件从一个位置移动到另一个位置时犯了一个错误。现在所有文件都已移动,但所有名称末尾都有一个连接。

如何*在命令行中删除文件名末尾的所有 s?

笔记:我正在使用嵌入式系统,没有任何互联网连接。请提供无需安装新东西的解决方案。

提前致谢

答案1

有一个名为(非常有创意)的命令rename,允许您使用正则表达式重命名文件。

在这种情况下,您可能想要执行以下操作:

rename 's/\*//' files...

这将删除*每个文件名中的第一个字符。

rename -n如果您担心正则表达式不正确,您可以使用列出将执行的重命名而无需实际执行它们。

答案2

Ubuntu 自带rename可以通过正则表达式重命名文件的命令。

如果所有文件都位于同一文件夹中,您只需执行以下操作:

rename s/\\*$// *

\\*是转义的*$是文件名的结尾。匹配项将被替换为任何内容。)

如果所有文件都在目录结构中,则可以使用 find:

find / -exec rename s/\\*$// {} \;

它会rename /\\*$//在您系统上的每个文件和目录上执行。您可以随意将 更改/为目录结构所在的文件夹。

相关内容