如何替换文件名中的空格?

Modified on: Thu, 14 Jun 2018 11:18:53 +0800

我尝试了以下方式:

rename 'bla bla .txt' blabla.txt

但这不起作用,这种情况的正确语法是什么?

最佳答案

您不应该使用rename重命名一个文件,请使用​​ mv(1)

此外,要转义whitepsace,请在其前面添加\

"Ubuntu One"Ubuntu\ One

您的命令将是

mv bla\ bla.txt blabla.txt
  • 反斜杠告诉bash下一个字符在某种程度上是特殊的,例如用于'bell'的\a,用于文字空间的\等等

    请参阅man ascii(7)了解更多

或者,由于您现在使用正确的命令mv,如果有很多空格,您可以引用文件名:

mv "bla    bla.txt" blabla.txt

(这是转义形式的bla\ \ \ \ bla.txt

  • 在bash中,引用的字符串(单引号或双引号)被视为单个参数,而未引用的字符串将被分割为多个参数,如下所示:


    • ["mv", "bla", "bla.txt", "blabla.txt", ]

    mv期望:


    • ["mv", "source", "destination", ]
  • 注意:输入'mv'和文件名的前几个字符,然后按 TAB 将为您提供文件名的转义版本,使重命名变得轻松快捷。


rename用于批处理使用正则表达式重命名文件,如其手册页

rename 's/\.bak$//' *.bak

从匹配“* .bak”的所有文件中删除任何出现的.bak(在字符串[$]的末尾)。

作者:,Stefano Palazzo

相关问答

添加新评论