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