查找有特定文件的子目录 --- ls命令的妙用

问题描述 在目录“/data/”下有非常多的子目录(一千个左右),目录名是类型名称,每个小时产生的数据按类型区分写入到对应的子目录中,文件命名方式是“yyyymmddhh”,每个子目录中的文件数平均约500个。一小时内不一定每总类型的数据都有,也就是说有些子目录下没有那个小时的数据文件的。现在的需求是:整点定时出一份上一小时有数据的类型名称列表,一行一个类型名称(子目录名)写入一个文本文件中

/data/
|-- type_1
|   |-- 2013061809
|   |-- 2013061808
|-- type_2
|   |-- 2013061808

问题分析 此问题看粗看起来很简单,只要循环的判断所有子目录是否存在上个小时的数据文件就可以了。功能是完全没问题的,但代码总感觉有点罗嗦,性能似乎也不是很好。于是寻找到了更优的解决方案,主要是ls结合通配符的一个妙用,大家一看就明白
ls -1 /data/*/`date -d -30minutes +%Y%m%d%H`|awk -F"/" '{print $3}' >  /tmp/list.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值