为了账号安全,请及时绑定邮箱和手机立即绑定

touch和mkdir建的文档文件,用find后用绝对路径root删除不掉mkdir建立的文件,但是touch可以删除掉,但是用(.)可以删除掉,为什么呢

[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


正在回答

2 回答

 已经解决了:看下面大佬的回答

其实 这还. 还是绝对路径没关系  在你所谓报错的那一次 其实已经删除了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 * 是一样的  


3 回复 有任何疑惑可以回复我~

赞一个,我也很想知道答案。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

touch和mkdir建的文档文件,用find后用绝对路径root删除不掉mkdir建立的文件,但是touch可以删除掉,但是用(.)可以删除掉,为什么呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信