就像我说的,我有一个文件名中带有冒号的文件,但我无法对其进行任何操作。我该如何重命名此文件并排除冒号?
$ 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 电脑中。