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

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

就像我说的,我有一个文件名中带有冒号的文件,但我无法对其进行任何操作。我该如何重命名此文件并排除冒号?

$ 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*

编辑:

文件系统是 ext4

答案1

我们最好发表评论,但我们的声誉还没有达到可以发表评论的程度。

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

因此,我要尝试的第一件事是:

mv Colossus\:_The_Forbin_Project.mp4 'Your New Beautiful Name.mp4'

更新:

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

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

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

这是什么意思?

这意味着您以某种方式创建了一个包含特殊通配符的文件,该通配符称为'*'。它可以被任意数量的任意类型的字符替换,包括零次。在命名文件时最好避免这种情况。

为了解决您的小问题,我下次尝试运行以下命令:

mv Colossus\:_The_Forbin_Project.mp4\* Colossus_-_The_Forbin_Project.mp4

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

答案2

根据 DOBRESCU_Mihai 所建议的,您似乎需要避开冒号。

你可以尝试:

mv Colossus\:_The_Forbin_Project.mp4 Colossus_The_Forbin_Project.mp4

或者

mv "Colossus:_The_Forbin_Project.mp4" "Colossus_The_Forbin_Project.mp4"

但是我觉得这里可能还有比糟糕的文件名更糟糕的事情。在我使用 bash 对 ext4 进行测试时,我能够创建、移动、重命名名称中带有冒号的文件,而无需转义或用引号括起来,因此这很大程度上可能取决于您使用的文件系统。将这些信息更新到您的问题中,我会尝试针对您的特定文件系统进行回答。

答案3

帮我解决了

我所做的是将带有冒号的文件所在的 USB 插入我的 Android 智能手机,然后我能够重命名文件并去掉冒号,然后我能够将文件复制到 Windows 10 电脑中。

相关内容