我创建了一个名为“?”的文件,有人知道如何删除它吗?
看起来 ?是 linux 中的一个特殊字符,我使用 Redhat 作为我的操作系统。
我已经试过了
rm ?
rm "?"
rm \?
他们都失败了,我得到的错误表明该文件不存在。
找到文件的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)
rm \?
并且rm "?"
都是删除名为?
. 如果它们不起作用,并且您似乎仍然有一个文件名?
,那么很可能?
显示的不是真正的 a ?
,而是用 a 替换不可打印字符的结果?
。要查看文件的真正名称(使用 GNU ls
),请尝试:
ls --quoting-style=escape
使用此rm
命令删除名为 的文件?
:
rm ./\?
或从另一个目录:
rm /path/to/\?
您可以通过文件的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的文件(属于我的“?”文件的索引节点)。