我尝试了以下方法:
rename 'bla bla .txt' blabla.txt
Run Code Online (Sandbox Code Playgroud)
但这不起作用,这种情况下的正确语法是什么?
Ste*_*zzo 15
您不应该只使用rename
重命名一个文件,而是使用mv
(1)。
此外,要逃避 whitepsace,请为其添加前缀\
:
"Ubuntu One"
? Ubuntu\ One
你的命令是
mv bla\ bla.txt blabla.txt
Run Code Online (Sandbox Code Playgroud)
反斜杠告诉 bash 下一个字符在某种程度上是特殊的,例如\a
对于 'bell',\
对于文字空间等等
参见man ascii
(7)了解更多
或者,由于您现在使用的是正确的 command mv
,如果有很多空格,您可以引用文件名:
mv "bla bla.txt" blabla.txt
Run Code Online (Sandbox Code Playgroud)
(这将是bla\ \ \ \ bla.txt
转义形式)
在 bash 中,带引号的字符串(单引号或双引号)被视为单个参数,而不带引号的字符串将被拆分为多个参数,如下所示:
["mv", "bla", "bla.txt", "blabla.txt", ]
并mv
期望:
["mv", "source", "destination", ]
注意:输入“mv”和文件名的前几个字符并按下,TAB将为您提供文件名的转义版本,使重命名变得快速而简单。
rename
用于使用正则表达式批量处理文件的重命名,如其手册页中的示例所示:
rename 's/\.bak$//' *.bak
Run Code Online (Sandbox Code Playgroud)
从匹配“*.bak”的所有文件中去除任何出现的 .bak(在字符串 [$] 的末尾)。
归档时间: |
|
查看次数: |
16012 次 |
最近记录: |