我有一些文件的文件名中有特殊字符'
。我似乎无法复制、移动、重命名这些文件。
例如,当我尝试重命名为时grandpa's_pen.mp4
,grandpas_pen.mp4
该操作花费的时间太长。
文件大小大约为50MB,我的硬盘是NVMe。
知道为什么会发生这种情况吗?
答案1
你需要逃脱 '
,因为正如您提到的,单引号 ( '
) 在 Bash 中是特殊字符(这很可能是您的终端使用的 shell)。要转义字符,您可以使用转义符\
就在它前面。因此,例如,要重命名grandpa's_pen.mp4
,grandpas_pen.mp4
您应该运行:
mv grandpa\'s_pen.mp4 grandpas_pen.mp4
或者,您也可以使用双引号 ( "
) 括住带有单引号的文件。上述示例在这种情况下为:
mv "grandpa's_pen.mp4" grandpas_pen.mp4
笔记:
你说:
例如,当我尝试重命名为时
grandpa's_pen.mp4
,grandpas_pen.mp4
该操作花费的时间太长。
在这种情况下,该操作不会花费太多时间。简单来说,该命令甚至还没有运行!
这是因为当单引号和双引号用作特殊字符时,即当它们未经转义就使用时,shell 希望它们成对出现。
在您的例子中,grandpa's_pen.mp4
有一个未转义的单引号,因此当您按下Enter运行命令时,shell 会为您提供一个新提示,您可以在其中输入更多文本,并等待您输入结束单引号。只有当您输入结束单引号并按下 时,Enter命令才会运行,这几乎肯定会返回错误。