救命。我偶然跑了“发现/ -mtime +1 -exec rm {} \;”!


0

我非常累,整夜工作,我几个小时都没有睡觉......所以我现在就像一个僵尸......半醒,半睡半醒。

我试图清除一个目录。然后我运行命令cd进入目录,然后再考虑我运行这个危险的命令。在我的Linux服务器上:

 "find  / -mtime +1 -exec rm {} \;"

我得到了很多:

rm: cannot remove `/sys/module/serio_raw/sections': Is a directory
rm: cannot remove `/sys/module/pcspkr': Is a directory
rm: cannot remove `/sys/module/pcspkr/sections': Is a directory
rm: cannot remove `/sys/module/dm_raid45': Is a directory
rm: cannot remove `/sys/module/dm_raid45/sections': Is a directory
rm: cannot remove `/sys/module/dm_message': Is a directory
rm: cannot remove `/sys/module/dm_message/sections': Is a directory

这个命令可能删除了这些目录中的内容 ?我担心下次重启服务器不会启动...

谢谢。


3
是的,除非你有备份,否则你会被搞砸。您 有备份,不是吗?如果是这样的话,使用它们,如果不认为这是一个有价值的生命教训,并且(一旦你从这种不圣洁的混乱中解脱出来)开始经常和频繁地做这些。

1
你的FS是什么?你会学习文件系统取证吗?我已经在rm-rf(几TB数据)之后为FFS2 FS做了这个。
osgx

幸运的是,它似乎没有被删除。我在停止/ sys目录之前停止了突击队,这是第一个。
valter

Answers:


2

/sys, 喜欢 /proc 是一个虚拟目录。你不能真正删除任何东西 - 当然没有重启不会恢复。

但是关于你的磁盘文件系统却不能这样说。 rm-r 不会删除目录,但会同时删除 find 它可以轻松删除其下的所有文件。该 -mtime +1 某种程度限制了损害的程度,但并未阻止它。

您可能希望使用包管理系统至少在重新引导之前验证系统文件。另外,请检查 find / 列出的目录的顺序。也许你很幸运 /sys 是第一个 - 你马上打断了命令,对吧?


它似乎没有被删除:当我运行find /正如你所说,我得到:root @ server [/ sys] #find / / / sys / sys / module / sys / module / ipt_owner / sys / module / ipt_owner / sections
valter

是否有任何日志存储一个列表,其中包含可能已删除的所有内容?
valter

@Valter:不,没有日志。但是,订单 find 表示目录的内容是文件系统的本机顺序,除非您添加/删除某些内容,否则不会更改。运行 find / 会告诉你访问目录的顺序。
thkala

也就是说,您应该使用包管理系统来验证系统文件,并且您应该将备份与缺失文件进行比较。如果你有设置 locate 你也可以用 locate / 和上次一样找到丢失文件的一些shell诡计 locate 数据库已更新。
thkala

3

是的:rm无法删除目录,但如果可以的话,在其中找到“挖掘”,并在包含的文件上调用rm

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.