如何在rename命令中添加单引号来改变文件名?

如何在rename命令中添加单引号来改变文件名?

我正在使用终端中的重命名命令将文本文件从重命名为Programmer.txt。我尝试了以下命令:Programmer's File.txt

rename 's/Programmer/Programmer's\ File' *.txt 

但它不起作用。我猜是单词中的单引号Programmer's出了问题。我该如何修复它?

答案1

由于单引号在双引号内并不特殊,因此最简单的方法是

rename -n "s/Programmer/Programmer's File/" *.txt

(请注意,空格字符不需要转义,因为引号已经保护它不被 shell 扩展)。

或者,关闭引号,将转义的引号传递\'给 shell,然后再次打开引号:

rename -n 's/Programmer/Programmer'\''s File/' *.txt

或者你可以完全放弃引用并直接转义 shell 特殊字符:

rename -n s/Programmer/Programmer\'s\ File/ *.txt

答案2

您需要一个转义符:

sudo mv Programmer.txt "Programmer\'s File.txt"

转义符保留后面的字符,以便 Bash 或任何其他程序不会以除文字之外的任何其他方式解释它。

相关内容