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