我在某个时候做了疯狂的事情,创建了一个-rf
在文件系统上调用的文件。
现在我不知道如何删除它...
我试过了:
rm "-rf"
rm \-rf
这些只是立即退出,哎呀!
有人知道如何删除此文件吗?最好不要意外地清除我的整个文件夹。
rm
(在argc
和中argv
),因此,这两个结果都将数组["rm", "-rf"]
传递给rm
,可以满足您的期望。
*
为文件夹的文件。包括其中一位-rf
,并观看乐趣;-)
我在某个时候做了疯狂的事情,创建了一个-rf
在文件系统上调用的文件。
现在我不知道如何删除它...
我试过了:
rm "-rf"
rm \-rf
这些只是立即退出,哎呀!
有人知道如何删除此文件吗?最好不要意外地清除我的整个文件夹。
rm
(在argc
和中argv
),因此,这两个结果都将数组["rm", "-rf"]
传递给rm
,可以满足您的期望。
*
为文件夹的文件。包括其中一位-rf
,并观看乐趣;-)
Answers:
unlink -rf
要么
rm -- -rf
getopt
东西都具有--
,这应该意味着大多数现代linux工具。
或者,您始终可以在其中编辑目录并以这种方式删除文件。
vim .
然后只需删除上面带有文件的行即可(使用D,dd无效)。
vim
否决票一样,但是我没有机会去验证那个有干事模式的人。显然,既不建议在文本编辑器中编辑实际目录本身,也不能在没有真正的专家级跳跃的情况下进行编辑。请注意,emacs
由于相同的原因,这也将起作用。
使用一种删除怪异文件名的通用技术。
ls -li
查找文件的索引节点编号,然后使用。
find ./ -inum <number of file> -delete
无需记住所有特殊情况。
find
有权删除文件。
即使我知道“ rm--filename”技巧,通常当我以某种方式获得带有前导的文件时-要删除其名称时,我会启动GUI文件管理器并从那里开始,以消除这种机会错误。
万一您在某些非GNU Unix上,如果您感到自己被拖回了石器时代(没有--
语法,没有-inum
切换开关,没有取消链接命令,编辑器拒绝编辑目录等),您仍然可以帮助自己:
find . -name '-rf' -print | xargs rm -i
这将导致find将所有可能的候选对象提供给rm,而rm则将针对它被馈送的每个文件都请求允许/拒绝。
如果您rm
甚至不支持该-i
交换机(任何人在PA-RISC 1.1上使用HP-UX 10.2?),请多加注意:
find . -name '-rf' -print
# check that find's output is exactly and only what you need to delete
find . -name '-rf' -print | xargs rm
find
呢?
支持jleedev的答案,我会改进:
rm -i -- -rf
处于交互模式并要求确认,因此您可以确定删除了什么。(尽管解决方案很好。但这只是为了让您省心)
实际上,甚至可以使用:
\rm -i -- -rf
确保您没有使用任何别名。
正如已经建议的那样,我一直使用语法
rm -rf -- filename
当我不得不删除带有短划线作为前缀的文件时,因为-对命令说它不搜索任何其他参数,而只是搜索文件名。
请记住,为了通过意外删除文件来保护我的重要文件夹,我习惯于创建一个名为-i的空文件,通常在解决*搜索时将其放在文件列表的顶部。所以命令
rm -rf *
当在受保护的文件夹中执行命令时,执行以下命令时会爆炸:
rm -rf -i filename1 filename2 .... (all the other files in the folder)
然后,shell不再要求立即确认,而不再立即删除所有内容(如-i选项所要求的)。
-i
文件名被破解-“我”表示怀疑,但测试出来了!
rm
调用的文件有些紧张-rf
!