如何删除名称为 ''$'\r' 的文件?

How do I delete a file with name ''$'\r'?

由于某些原因,我的一个目录中有一个我无法删除的文件:

$ ls -al
drwxrwxr-x 2 xxx xxx 4096 Oct 10 14:05 ''$'\r'
(more files follow...)

问题是我无法删除它。我尝试使用通配符 rm ''$'\r'ls 来至少查看它匹配的内容,但没有成功。有趣的是,ls -al ?ls -al ??等并没有列出文件。

可能我可以删除整个目录并在之后恢复其他文件,但我认为应该可以 1) 列出正确的文件名,以及 2) 然后使用该名称删除文件。

我觉得还行

rm "''$'\r'"

我终于做到了:

ls -i # find the inode of the file
find . -inum 4350083 -delete 

不确定为什么名称没有列在可以输入的表单中。我尝试将它包含在 $'...' 中,但这也没有用。

由于您是 运行 bash 交互,您可以使用文件名完成。文件名中的第一个字符对于 shell 是特殊的,因此您需要对其进行转义。 Bash 应该完成剩下的工作。所以输入:

rm \'

然后按制表符键,bash 应该会为您完成文件名,并进行适当的转义等。然后只需按 Enter 键即可将其删除。