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