我有一个文件名包含特殊字符(umlauts)的文件。我已经将该文件重命名,但是
如何找出文件的原始名称或者如何在不知道确切文件名的情况下删除该文件(也许只有文件扩展名)?
编辑:我开始感到这个文件是在Windows PC上创建的,那里的umlauts编码是不同的。然而,我无法解释为什么我不能删除这个文件。
我刚刚发现这些是八进制表示法。尝试从Can't remove directories git、Remove a file with a strange name from git和Git: how to specify file names containing octal notation on the command line中尝试的解决方案都没有帮助。特别是解决方案。
git
仍然告诉我有“未提交的更改”。然而,我不记得文件的正确名称,而且git只告诉我文件名为"Mu\314\210.jpg"
。我不知道这应该是什么格式,是utf8
吗?我尝试过git rm
并复制了该字符串,但没有成功。如何找出文件的原始名称或者如何在不知道确切文件名的情况下删除该文件(也许只有文件扩展名)?
编辑:我开始感到这个文件是在Windows PC上创建的,那里的umlauts编码是不同的。然而,我无法解释为什么我不能删除这个文件。
我刚刚发现这些是八进制表示法。尝试从Can't remove directories git、Remove a file with a strange name from git和Git: how to specify file names containing octal notation on the command line中尝试的解决方案都没有帮助。特别是解决方案。
git rm `printf "Mu\314\210.jpg"`
我没有删除文件。它仍然显示"Mu\314\210.jpg" 没有匹配到任何文件
。是否有其他方法可以删除文件?
printf
告诉我"Mu\314\210.jpg"
是"Mü.jpg"
。然而,在我的Mac OSX上,ü
的八进制表示应该是\303\274
。这就是我认为u\314\210
来自Windows PC的原因。但我还不确定这有什么帮助。
我刚试图运行git-rm
建议的git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached
。我现在非常确定,除非将文件再次添加,否则无法删除该文件。我将尝试使用旧文件名获取文件,然后再删除它。
好的,添加旧文件也没有帮助。Mac OSX似乎会自动更改八进制表示。看起来最后的机会是在Windows PC上删除它。
git rm -- Mu*
看看是否有效吗?(如果文件不在磁盘上,而只存在于 Git 存储库索引中,则使用git rm --cached -- Mu*
) - VonC