专栏首页醉生梦死Linux命令:find . -type d -name "doc" -exec rm -rf {} \;报错分析及解决

Linux命令:find . -type d -name "doc" -exec rm -rf {} \;报错分析及解决

# mkdir doc # find . -type d -name "doc" -exec rm -rf {} \;  #虽然此处报错,却删除成功 # echo $?

原因分析     首先了解一个知识点,很容易被忽略,find会查找指定路径下的目录和文件及目录的子目录和子文件; find命令在查找第一个doc目录就将此路径传递给-exec后面的命令执行操作,从下面的这个图片可以看出,在查找到第一个doc路径后打印(-print)该路径,然后将该路径传递给后面的echo命令,那么也会再次打印该路径,故打印两次,执行完-exec后面的命令后,继续执行find命令,在刚才查找到doc路径下查找下一个名称为doc的命令。

    故,在执行命令: # find . -type d -name "doc" -exec rm -rf {} \; 将查找到的目录传递给rm进行删除,而此时doc目录已经删除,find又要在已删除的doc目录下进行继续搜索是否有名称为doc的目录,因已删除,故报错(find: `./doc': No such file or directory) 总结:   find将结果传递给-exec后的命令,然后继续执行find再次查找子目录     find命令会查找指定路径下的文件和目录及目录下的子文件和目录。

解决方法     # find . -type d -name "doc" | xargs rm -rf

图解:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • vim部分常用的命令(更新时间:2018/11/07)

    醉生萌死
  • 如何快速部署一个接收回调数据的服务器

    如果还没有服务器,可以购买一台按量计费的服务器测试使用,使用完成后,销毁即可,如果已经拥有一台,进行下一步即可。

    醉生萌死
  • Centos6.9系统部分基础优化(更新时间2018/04/19)

    注:此博客仅供参考,读者可根据自己的实际情况进行合理的配置,博客内容参考老男孩书籍《web集群实战》一书

    醉生萌死
  • 从 React 将从 BSD 改 MIT 许可证,谈如何选择正确的开源许可

    最近,知名 404 网站 Facebook 因为 React 的 License 问题而被受社区吐槽。而今早,React、Jest、Flow 和 Immutab...

    Phodal
  • laravel-admin 管理平台获取当前登陆用户信息的例子

    以上这篇laravel-admin 管理平台获取当前登陆用户信息的例子就是小编分享给大家的全部内容了,希望能给大家一个参考。

    砸漏
  • python异常捕获

    mwangblog
  • Python3入门与实践(一): 基本类型整理

    Meet相识
  • SAP S/4HANA的原生扩展字段,如何能够配到S/4CRM WebClient UI上

    Currently all AET HEADER fields are appended to structure INCL_EEW_ORDERADH_H. S...

    Jerry Wang
  • Jmeter系列(59)- 详解 while 控制器

    和 java 里面的 while 循环一样,将一直运行其所有子项,直到条件为 false 为止

    小菠萝测试笔记
  • python 学习总结4

      (1)python中的整数与数学中的概念是一致的,可以正也可以负,没有取值范围。

    py3study

扫码关注云+社区

领取腾讯云代金券