find /var/www/html/sorry/cache/ -cmin +1 -exec rm -f '{}' ;
写了一个删除缓存的命令,没有用通配符去匹配具体的某一类文件,结果没想到.和..两个隐藏文件夹,递归的把文件都删除了。。
现在看了一下,/root/ 下的所有文件都没了,/ 根目录下的好像幸免于难。。目前可以正常使用,但是我不敢重启了。。
也有可能只删除了 /root/目录下的文件?
常在河边走,终于湿鞋了
1
diveIntoWork OP 我好蠢,直接用 ls 就好了。
|
2
nosay 2018-03-24 17:07:27 +08:00 via iPhone
/root 下本来就没有什么东西吧…
|
3
FindBoyFriend 2018-03-24 17:11:13 +08:00
/root 系统好像没放文件在里面吧?
|
4
wangbenjun5 2018-03-24 17:14:03 +08:00
这种删除命令还是少用为好,用之前请反复确认
|
5
privil 2018-03-24 17:16:43 +08:00 via iPhone
type f
|
6
WordTian 2018-03-24 17:16:45 +08:00 via Android
有一些,比如.bashrc 等,但是这种文件不一定就被删了,就算删了,影响也不大
|
7
diveIntoWork OP |
8
songz 2018-03-24 17:38:26 +08:00
那正确的命令应该怎么写啊?
|
9
ferock 2018-03-24 17:53:46 +08:00
为什么要用递归。。。就像一楼自己说的,ls 不就行了吗?
|
10
diveIntoWork OP @ferock 大概是短路了
|
11
likuku 2018-03-24 18:05:17 +08:00 1
论不要使用 root 账号作事情 /创建文件 的重要性...
|
12
xpresslink 2018-03-24 18:05:39 +08:00
正确的写法应当是 rm -Rf / 么?
|
13
likuku 2018-03-24 18:06:14 +08:00
如此这般,/root 下就没啥重要的文件了
|
14
Qoxan 2018-03-24 18:07:42 +08:00 via iPhone 1
find (dir) -mindepth 1 -maxdepth 1 ……
再加其它参数,就不会误删其他目录的东西了 |
15
chinvo 2018-03-24 18:08:24 +08:00
看不明白为啥用 find
ls 不好么 |
16
akira 2018-03-24 18:31:52 +08:00
删除的动作 再怎么小心也不为过。 除了文件 还是数据库的删除指令也是
|
17
geelaw 2018-03-24 18:36:23 +08:00 via iPhone 2
请自觉学习 -WhatIf
|
18
laoyur 2018-03-24 20:09:42 +08:00
所以,不会用 find 命令的表示很欣慰
|
19
diveIntoWork OP |
20
angelface 2018-03-24 21:28:22 +08:00 2
建议你把 rm 用 mv 替换,然后定期清理,
|
21
liangzi 2018-03-24 22:32:41 +08:00 via Android
我曾经也是用 find ➕ exec 差点误删除了 幸亏有权限限制 要不然惨大了 (捂脸)逃。。。。
|
22
lucasmi2002 2018-03-24 22:38:58 +08:00 via Android
加上文件名通配,先 ls,确认了再 rm
|
23
l1093178 2018-03-24 22:49:29 +08:00
0.跑 find 之前应该用 -print 看看匹配到的文件
1. find 可以直接 delete (-delete 参数),这是最安全的方式,不会因为文件名中间的空格误删其他文件 |
24
ryd994 2018-03-24 23:14:35 +08:00
你的意思是说,你 /var/www/html/sorry/cache/ 里有. 和 ..两个文件?你该庆幸那里没有~
楼上说的对,问题在于你没用-delete |
25
lan894734188 2018-03-25 04:03:48 +08:00 via Android
脚本从来不敢用删除
|
26
slack 2018-03-25 07:29:16 +08:00 via Android
手残党们了解一下 https://linux.cn/article-9425-1.html
|
27
goreliu 2018-03-25 08:24:48 +08:00
find 怎么会通过 .. 目录访问到上一层?那不是 find 什么目录都相当于全盘遍历了。是不是命令记错了。
|
28
dongxf 2018-03-25 10:38:03 +08:00
楼上说的对,find 找不出‘.’ 和 ‘..’
楼主的锅,find 不背 |
29
sutra 2018-03-25 13:35:06 +08:00
man rescue 了解一下?
|
30
fhefh 2018-03-25 13:45:25 +08:00
生产环境的机器 我一般重命名 宁愿占位置 也不删除~~
|
31
shihira 2018-03-25 17:12:00 +08:00
以后 rm 都要 dry run 一遍才敢运行了
|