我使用 Ubuntu 9.10(Karmic),我有一个包含许多文件的目录,其中包括这两个文件:
./baer.jpg
./bär.jpg
我想删除bär.jpg
但我不能。
如果我输入rm b
并点击TAB
,它会显示两个文件,如果我附加ä
并点击TAB
,则不会显示任何内容。
为了删除,必须做什么bär.jpg
?
删除父文件夹对我来说不是一个解决方案,因为此目录中有大量文件被生产环境使用。
答案1
我刚刚发现了如何删除带有特殊字符的文件:
cd <directory with that file>
ls -ali
在目录列表的最左侧,您可以看到每个文件的 inode 的 ID。
通过 inode ID 删除文件:
find . -inum <inode ID of your file> -exec rm -i {} \;
这对我的问题很有效。希望这对你有帮助!
答案2
答案3
grep
好吧,如果这是一个有问题的文件,您可以尝试使用匹配的方法来删除该文件。
neal@dsadsa:~$ touch junk_ä_deleteme
neal@dsadsa:~$ ls | grep junk | grep deleteme | xargs rm
这里,我创建了一个名为 的文件junk_ä_deleteme
。然后我通过匹配搞笑符号之前(“junk”)和之后(“deleteme”)的字符来删除它。这种方法不太好,但如果是单个文件,它可能会起作用。
也许更好的解决方案是形成一个正则表达式来匹配您的文件,然后将该文件名传送到rm
。