无法复制、移动、重命名文件名中包含特殊字符(单引号)的文件

无法复制、移动、重命名文件名中包含特殊字符(单引号)的文件

我有一些文件的文件名中有特殊字符'。我似乎无法复制、移动、重命名这些文件。

例如,当我尝试重命名为时grandpa's_pen.mp4grandpas_pen.mp4该操作花费的时间太长。

文件大小大约为50MB,我的硬盘是NVMe。

知道为什么会发生这种情况吗?

答案1

你需要逃脱 ',因为正如您提到的,单引号 ( ') 在 Bash 中是特殊字符(这很可能是您的终端使用的 shell)。要转义字符,您可以使用转义符\就在它前面。因此,例如,要重命名grandpa's_pen.mp4grandpas_pen.mp4您应该运行:

mv grandpa\'s_pen.mp4 grandpas_pen.mp4

或者,您也可以使用双引号 ( ") 括住带有单引号的文件。上述示例在这种情况下为:

mv "grandpa's_pen.mp4" grandpas_pen.mp4

笔记:

你说:

例如,当我尝试重命名为时grandpa's_pen.mp4grandpas_pen.mp4该操作花费的时间太长。

在这种情况下,该操作不会花费太多时间。简单来说,该命令甚至还没有运行!

这是因为当单引号和双引号用作特殊字符时,即当它们未经转义就使用时,shell 希望它们成对出现。

在您的例子中,grandpa's_pen.mp4有一个未转义的单引号,因此当您按下Enter运行命令时,shell 会为您提供一个新提示,您可以在其中输入更多文本,并等待您输入结束单引号。只有当您输入结束单引号并按下 时,Enter命令才会运行,这几乎肯定会返回错误。

相关内容