无法直接在 bash 中与带有撇号的文件交互

无法直接在 bash 中与带有撇号的文件交互

我有一个名为“I'm Here.mp3”的文件,当我尝试使用 ls、cp、mv 等任何内容与它交互时,它会返回cannot stat "./I'm Here.mp3": No such file or directory

我尝试了双引号、单引号、无引号,每个都尝试用反斜杠转义撇号,我检查了权限,我创建了一个名为“I'm Here.png”的虚拟文件,这没有问题,并且我对同一文件夹中的其他文件没有问题,只是这个文件恰好有撇号。

什么会导致终端无法识别这样的文件?我仍然可以通过媒体播放器收听它,在文件管理器中复制、粘贴和移动等,但我正在尝试纠正这样的文件文件夹的元数据。

使用该命令,ls | hexdump -C我可以将撇号识别为十六进制值e2 80 99

答案1

如果引用文件名I'm here.mp3不起作用,那么文件名实际上可能不是它看起来的那样。

I'm也许和之间的空格Here不是空格,或者名称末尾( 后)有一个额外的空格(或其他不可见字符)mp3。以ls | hexdump -C十六进制查看目录中的文件名,然后根据得到的十六进制输出在文件名中使用正确的字符。

相关内容