qq_趁现在还年轻_03793811
2017-08-16 09:06
[root@localhost ~]# touch qz
[root@localhost ~]# mkdir qa
[root@localhost ~]# ls
qa qz install.org
[root@localhost ~]# find /root -name qz -exec rm -rf {} \;
[root@localhost ~]# ls
qa install.org
[root@localhost ~]# find /root -name qa -exec rm -rf {} \;
find: “/root/qa”: 没有那个文件或目录
[root@localhost ~]# find . -name qa -exec rm -rf {} \;
[root@localhost ~]# ls
install.org
已经解决了:看下面大佬的回答
其实 这还. 还是绝对路径没关系 在你所谓报错的那一次 其实已经删除了qa
【树干】xx(xxxxxxxxx) 21:36:09
只所以会出这个错误 你得注意 这个错误 不是rm 命令生成的 是find命令产生的 这就涉及到find的工作机制
find /root -name qa -exec rm -rf {} \;
首先找到了一个文件(一切皆文件,包括目录) qa 所以/root/qa作为参数传递给了 rm -rf 然后qa目录就被删除了 但是 注意 find查找文件是递归的 它会继续在qa这个目录下 去查找qa
【树干】xx(xxxxxxxx) 21:37:44
然而 qa这个目录 却在上一步被删除了 所以find 懵逼了 说没有/root/qa这个目录 你让我去哪查 这个错误 其实和你手动删除qa目录后 find /root/qa -name * 是一样的
赞一个,我也很想知道答案。
Linux达人养成计划 I
399344 学习 · 3791 问题
相似问题