11

我创建了一个名为“?”的文件,有人知道如何删除它吗?

看起来 ?是 linux 中的一个特殊字符,我使用 Redhat 作为我的操作系统。

我已经试过了

    rm ?
    rm "?"
    rm \?

他们都失败了,我得到的错误表明该文件不存在。

4

4 回答 4

24

找到文件的inode:

ls -li

然后使用 inode 删除文件:

find . -inum <inode-number> -exec rm -i {} \;

顺便说一句,rm ?对我来说很好。这是我的 bash 版本:

# bash --version
GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)
于 2013-11-12T06:47:39.370 回答
5

rm \?并且rm "?"都是删除名为?. 如果它们不起作用,并且您似乎仍然有一个文件名?,那么很可能?显示的不是真正的 a ?,而是用 a 替换不可打印字符的结果?。要查看文件的真正名称(使用 GNU ls),请尝试:

ls --quoting-style=escape
于 2013-11-12T06:51:22.840 回答
3

使用此rm命令删除名为 的文件?

rm ./\?

或从另一个目录:

rm /path/to/\?
于 2013-11-12T06:40:31.340 回答
1

您可以通过文件的inode号删除文件。见下面的输出:

alplab:~/cad# ls -il
63051 -rw-r--r--    1 root     root             0 Nov 12 11:48 ?
alplab:~/cad# find . -inum 63051 -exec rm -i {} \;

我使用“查找”命令删除了索引节点号为63051的文件(属于我的“?”文件的索引节点)。

于 2013-11-12T12:01:07.067 回答