我有一个文件名中带有冒号的 Linux 文件,但无法打开、重命名或删除。如何从此文件名中删除冒号?

Bri*_*ian 3 linux filenames

就像我说的,我有一个文件名中带有冒号的文件,但我无法用它做任何事情。如何重命名该文件,排除冒号?

$ ls -l
ls: 'Colossus:_The_Forbin_Project.mp4': No such file or directory
total 1998584
-rwxrwxrwx 1 501 501 2044545396 Mar 21  2013 Colossus:_The_Forbin_Project.mp4*
Run Code Online (Sandbox Code Playgroud)

编辑:

文件系统是ext4

小智 5

我们最好发表评论,但我们还没有那么有名气,无法发表评论。

当某个字符由于各种原因而无法访问时,应首先尝试使用反斜杠字符('\')对其进行转义。

所以,我要尝试的第一件事是:

mv Colossus\:_The_Forbin_Project.mp4 'Your New Beautiful Name.mp4'
Run Code Online (Sandbox Code Playgroud)

更新:

再想一想,关于冒号特殊字符 ( ':') 可能没有发生任何事情。你所做的只是一个简单的ls -l,@Brian。

操作系统使用单引号来表示与某个'Colossus:_The_Forbin_Project.mp4'丢失文件相关的错误。

它真正成功列出的是一个名为 as 的文件Colossus:_The_Forbin_Project.mp4*

这是什么意思?

这意味着您以某种方式创建了一个包含名为 as 的特殊通配符的文件'*'。它可以被任何类型字符的任意出现次数(包括零)替换。命名文件时最好避免它。

为了解决您的小问题,我下一步要做的是运行以下命令:

mv Colossus\:_The_Forbin_Project.mp4\* Colossus_-_The_Forbin_Project.mp4
Run Code Online (Sandbox Code Playgroud)

这会转义星号特殊字符,并将其与冒号特殊字符一起删除。