在命令行中通过regexp重命名文件

我试图将文件从一个位置移动到另一个位置时出错。 现在所有文件都被移动了,但是在所有名称的末尾都有一个*连接。

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

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

提前致谢

有一个命令(超出原创性) rename ,允许您使用正则表达式重命名文件。

在这种情况下,您可能想要:

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

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

如果您担心正则表达式不正确,可以使用rename -n列出将在不实际执行的情况下执行的重命名。

Ubuntu附带了rename命令,可以通过正则表达式重命名文件。

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

 rename s/\\*$// * 

\\*是转义*$是文件名的结尾。匹配将被替换为空。)

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

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

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