免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3468 | 回复: 12

[文本处理] shell控制目录下的子目录个数 [复制链接]

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2014-06-20 15:29 |显示全部楼层
shell控制目录下的子目录个数

/data/temp 目录下的目录个数的控制,如果超过这个数值,比如控制目录下的子目录在30个,删除创建创建时间最久远的目录~~~

论坛徽章:
0
发表于 2014-06-20 16:10 |显示全部楼层
@prcardin

我做的实验假设目录是/tmp/temp
  1. dir_count=`find /tmp/temp/ -maxdepth 1 -type d | wc -l`
  2. del_dir_count=$((${dir_count}-31))

  3. if [ ${dir_count} -gt 31 ];then
  4.         ls -hlt | awk '$0~/^d/{print $NF}' | tail -${del_dir_count} | xargs rm -rf
  5. fi
复制代码

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2014-06-20 16:12 |显示全部楼层
if判断那个模块做的很好,谢谢哈
目测是可以的

回复 2# todayhero


   

论坛徽章:
0
发表于 2014-06-20 16:14 |显示全部楼层
until [ "CU" = "chinaunix" ]
do
    until [ `ls -F /data/temp | grep -c '/$'` -gt 30 ]
    do
        sleep x
    done
    rm xxx
done

额,创建时间最久远不知道怎么判断。

论坛徽章:
0
发表于 2014-06-20 16:16 |显示全部楼层
回复 2# todayhero

厉害,ls我还是没用熟练,很多参数都不知道。

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2014-06-20 16:18 |显示全部楼层
文件创建时间的比较。倒数第30个以前的都删除
回复 4# 用户名注册后不能更改


   

论坛徽章:
38
辰龙
日期:2013-08-21 15:45:19寅虎
日期:2014-06-09 12:52:17双鱼座
日期:2014-06-10 12:42:44巨蟹座
日期:2014-06-12 23:17:17戌狗
日期:2014-06-17 09:53:29未羊
日期:2014-10-10 13:45:41申猴
日期:2015-03-03 17:21:37亥猪
日期:2015-03-03 17:22:002015亚冠之广州富力
日期:2015-05-12 16:34:522015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:08平安夜徽章
日期:2015-12-26 00:06:30
发表于 2014-06-20 16:19 |显示全部楼层
本帖最后由 关阴月飞 于 2014-06-20 16:26 编辑

回复 1# prcardin


    不考虑子目录中的子目录,另外创建时间是没有保存的,这里用ls 的-t参数排序:
  1. ls /data/temp/*/ -dt |awk 'NR>30' |xargs -i rm  -rf /data/temp/{}/  
复制代码

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2014-06-20 16:21 |显示全部楼层
PF大婶,好简单的说。ls的参数真多     awk里的NR这用的新颖

回复 7# 关阴月飞


   

论坛徽章:
0
发表于 2014-06-20 16:52 |显示全部楼层
回复 8# prcardin

我一直觉得,越是基础的命令,越应该研究深入,因为日常中用到的机会最大。

但是……
等世界杯之后再说吧。
等XXX之后再说吧。
等……

结果我还是不会ls。

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2014-06-20 16:55 |显示全部楼层
ls /data/temp/*/ -dt |awk 'NR>30' |xargs -i rm  -rf /data/temp/{}/
-i加上去后,不能删除。去掉-i才能删除。pf大婶,怎么破

回复 7# 关阴月飞


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

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP