免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3958 | 回复: 13
打印 上一主题 下一主题

如何实现find一定范围文件夹的内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-29 11:47 |只看该作者 |倒序浏览
我写了一个脚本,需要获取两个变量,一个是开始时间begintime,一个是结束时间endtime,例如我开始时间是200910,结束时间是201004,那么我如何实现
find ./begintime-endtime -name "*" -print
其实是想查找200910 200911 201001 201002 201003 201004这些文件夹,请高手指点一下,谢谢


以下是我的文件夹
drwxr-xr-x    2 root     root         4096 Feb  2 10:48 200909
drwxr-xr-x    2 root     root         4096 Feb  2 10:36 200910
drwxr-xr-x    2 root     root         4096 Feb  2 10:43 200911
drwxr-xr-x    2 root     root         4096 Feb  2 10:36 200912
drwxr-xr-x    2 root     root         4096 Feb  2 10:36 201001
drwxr-xr-x    2 root     root         4096 Feb  2 10:36 201002
drwxr-xr-x    2 root     root         4096 Feb  2 10:36 201003
drwxr-xr-x    2 root     root         4096 Feb  2 10:48 201004

论坛徽章:
0
2 [报告]
发表于 2010-05-29 12:04 |只看该作者
200912不是要获取的吗?干嘛用find啊,再说这也跟时间没关系啊,跟文件名有关,用ls不就行了?

论坛徽章:
0
3 [报告]
发表于 2010-05-29 12:08 |只看该作者
回复 2# l_penny


   
我是想在这些文件夹下查找特定的文件,但文件夹是以日期为名的

论坛徽章:
0
4 [报告]
发表于 2010-05-29 12:18 |只看该作者
find ./20091[0-2] ./20100[1-4] -name "*" -print

论坛徽章:
0
5 [报告]
发表于 2010-05-29 12:20 |只看该作者
find ./20091[0-2] ./20100[1-4] -name "*" -print
l_penny 发表于 2010-05-29 12:18



    这个我知道,我前提是以变量来查找的,在未知是哪一个月到哪一个月的情况下,这是不可以的,我就是要排除搜索那些不在范围内的文件夹。请帮忙帮忙

论坛徽章:
0
6 [报告]
发表于 2010-05-29 12:39 |只看该作者
对find了解不深,不知道行不行,用shell判断也行啊

论坛徽章:
0
7 [报告]
发表于 2010-05-29 12:44 |只看该作者
对find了解不深,不知道行不行,用shell判断也行啊
l_penny 发表于 2010-05-29 12:39



    反正先谢谢你了,期待问题的解决。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
8 [报告]
发表于 2010-05-29 13:33 |只看该作者
本帖最后由 expert1 于 2010-05-29 13:45 编辑
  1. ~# echo "drwxr-xr-x    2 root     root         4096 Feb  2 10:48 200909
  2. drwxr-xr-x    2 root     root         4096 Feb  2 10:36 200910
  3. drwxr-xr-x    2 root     root         4096 Feb  2 10:43 200911
  4. drwxr-xr-x    2 root     root         4096 Feb  2 10:36 200912
  5. drwxr-xr-x    2 root     root         4096 Feb  2 10:36 201001
  6. drwxr-xr-x    2 root     root         4096 Feb  2 10:36 201002
  7. drwxr-xr-x    2 root     root         4096 Feb  2 10:36 201003
  8. drwxr-xr-x    2 root     root         4096 Feb  2 10:48 201004"|awk '{print $NF}'|sort |sed -n '/200910/,/201004/p'
  9. 200910
  10. 200911
  11. 200912
  12. 201001
  13. 201002
  14. 201003
  15. 201004
复制代码
应该还有其他办法,但是周末脑子比较短路。先MARK一下。


这个和find没什么关系,find是与文件的时间习惯的,也就是$(NF-1)那个域名。

大周末的高手都出去耍了,在这里提问也要看时间的哈哈哈

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
9 [报告]
发表于 2010-05-29 13:53 |只看该作者
本帖最后由 expert1 于 2010-05-29 15:31 编辑

ls -l |awk '$NF>="201010"&&$NF<=“201004" {print $NF}'

闲得蛋疼,顺便搞一个比较无聊。
#!/bin/sh
ls -l |awk '{print $NF}' |while read i
do
      if (($i > 200910 )) && (($i < 201004))
           then echo $i
      fi
done

论坛徽章:
0
10 [报告]
发表于 2010-05-29 18:28 |只看该作者
回复 8# expert1


    谢谢你的帮忙,问题己解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP