粗事了, 这样 rm -f 也中枪

2018-03-24 16:41:32 +08:00
 diveIntoWork

find /var/www/html/sorry/cache/ -cmin +1 -exec rm -f '{}' ;

写了一个删除缓存的命令,没有用通配符去匹配具体的某一类文件,结果没想到.和..两个隐藏文件夹,递归的把文件都删除了。。

现在看了一下,/root/ 下的所有文件都没了,/ 根目录下的好像幸免于难。。目前可以正常使用,但是我不敢重启了。。

也有可能只删除了 /root/目录下的文件?

常在河边走,终于湿鞋了

7113 次点击
所在节点    程序员
31 条回复
liangzi
2018-03-24 22:32:41 +08:00
我曾经也是用 find ➕ exec 差点误删除了 幸亏有权限限制 要不然惨大了 (捂脸)逃。。。。
lucasmi2002
2018-03-24 22:38:58 +08:00
加上文件名通配,先 ls,确认了再 rm
l1093178
2018-03-24 22:49:29 +08:00
0.跑 find 之前应该用 -print 看看匹配到的文件
1. find 可以直接 delete (-delete 参数),这是最安全的方式,不会因为文件名中间的空格误删其他文件
ryd994
2018-03-24 23:14:35 +08:00
你的意思是说,你 /var/www/html/sorry/cache/ 里有. 和 ..两个文件?你该庆幸那里没有~
楼上说的对,问题在于你没用-delete
lan894734188
2018-03-25 04:03:48 +08:00
脚本从来不敢用删除
slack
2018-03-25 07:29:16 +08:00
手残党们了解一下 https://linux.cn/article-9425-1.html
goreliu
2018-03-25 08:24:48 +08:00
find 怎么会通过 .. 目录访问到上一层?那不是 find 什么目录都相当于全盘遍历了。是不是命令记错了。
dongxf
2018-03-25 10:38:03 +08:00
楼上说的对,find 找不出‘.’ 和 ‘..’
楼主的锅,find 不背
sutra
2018-03-25 13:35:06 +08:00
man rescue 了解一下?
fhefh
2018-03-25 13:45:25 +08:00
生产环境的机器 我一般重命名 宁愿占位置 也不删除~~
shihira
2018-03-25 17:12:00 +08:00
以后 rm 都要 dry run 一遍才敢运行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/441051

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX