免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2691 | 回复: 7

[文件目录] find No such file or directory [复制链接]

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
发表于 2015-05-26 16:36 |显示全部楼层
本帖最后由 hjfeng1988 于 2015-05-26 17:22 编辑
  1. [hujf@93a ~]$ ls -R *
  2. 2014:
  3. 10        11        12

  4. 2014/10:
  5. c        d        e

  6. 2014/11:
  7. c        d        e

  8. 2014/12:
  9. c        d        e

  10. 2015:
  11. [hujf@93a ~]$ find . -type d -name '1[0-9]'
  12. ./2014/10
  13. ./2014/11
  14. ./2014/12
  15. [hujf@93a ~]$ find . -type d -name '1[0-9]' -exec rm -r {} \;
  16. find: ./2014/10: No such file or directory
  17. find: ./2014/11: No such file or directory
  18. find: ./2014/12: No such file or directory
  19. [hujf@93a ~]$ ls -R *
  20. 2014:

  21. 2015:
  22. [hujf@93a ~]$
复制代码
系统是FreeBSD 9.3,find版本好像查不出来吧

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
发表于 2015-05-26 17:22 |显示全部楼层
  1. find . -type d -name '1[0-9]' -prune -exec rm -r {} \;
  2. find . -type d -name '1[0-9]' -exec rm -r {} +
复制代码

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
发表于 2015-05-26 18:19 |显示全部楼层
hjfeng1988 发表于 2015-05-26 17:22

find . -type d -name '1[0-9]' -prune -exec rm -r {} \;
find . -type d -name '1[0-9]' -exec rm -r {} +


CAN U TELL ME Y ?

man find 看了-prune的介绍晕头转向不知所云,能否来个国语的简单说明

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
发表于 2015-05-27 10:13 |显示全部楼层
回复 3# stupid_lee


    I can't,my poor english

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
发表于 2015-05-27 10:38 |显示全部楼层
回复 4# hjfeng1988

那能说明下为什么-exec rm -r {} \;就出现can not find the directory 了呢

   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2015-05-27 11:41 |显示全部楼层
回复 3# stupid_lee


这里有prune
http://bbs.chinaunix.net/thread-441883-1-1.html

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2015-05-27 11:49 |显示全部楼层
find 找到到 ./2014/10 之后还会尝试去 ./2014/10 下面继续查找
遗憾的是这个文件夹本身已经被 rm -r 了

如果不想看到报错,也可以改成这样:
  1. find . -type d -name '1[0-9]' | xargs -I {} rm -r {}
复制代码

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
发表于 2015-05-27 12:58 |显示全部楼层
回复 7# Shell_HAT

多谢HAT大神指点 ,原以为find -exec 是找完了再逐个执行后面的动作,原来应该是找一条执行一次

-prune的作用应该是再找到满足条件的目录后不会向这个目录的更深层去找

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP