在命令行中通过regexp重命名文件
我试图将文件从一个位置移动到另一个位置时出错。 现在所有文件都被移动了,但是在所有名称的末尾都有一个*
连接。
如何从命令行中的文件名末尾删除所有*
s?
注意:我正在使用嵌入式系统,没有任何Internet连接。 请提供解决方案,无需安装新的东西。
提前致谢
有一个命令(超出原创性) rename
,允许您使用正则表达式重命名文件。
在这种情况下,您可能想要:
rename 's/\*//' files...
这将删除每个文件名中找到的第一个*
字符。
如果您担心正则表达式不正确,可以使用rename -n
列出将在不实际执行的情况下执行的重命名。
Ubuntu附带了rename
命令,可以通过正则表达式重命名文件。
如果您的所有文件都位于同一文件夹中,则只需执行以下操作:
rename s/\\*$// *
( \\*
是转义*
, $
是文件名的结尾。匹配将被替换为空。)
如果所有文件都在目录结构中,则可以使用find:
find / -exec rename s/\\*$// {} \;
在您的系统上的每个文件和目录上执行rename /\\*$//
。 随意将/
更改为目录结构所在的文件夹。