我正在使用终端中的重命名命令将文本文件从重命名为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 或任何其他程序不会以除文字之外的任何其他方式解释它。