zoukankan      html  css  js  c++  java
  • Linux下查找指定日期的文件

    一、背景

    Linux服务器的一个目录里,每天产生海量的文件。为了防止磁盘被写满。

    决定每天删除部分老文件。OK,问题来了,如何过滤出指定日期的文件?

    二、强大的Linux

    一行代码搞定:

    ls --full-time /recordings/ | sed -n '/2018-03-21/p'

    得到的文件列表就是2018-03-21生成的文件。

    三、Java示例代码

        public WavInfo getWavInfo(){
            WavInfo info = new WavInfo();
            List<String> list = new ArrayList<String>();
            String yestoday = new DateUtil().arroundIntervalDay(new Date(), -1);
            String month = yestoday.substring(0, 7);
            StringBuffer cmd = new StringBuffer();
            cmd.append("ls --full-time ");
            cmd.append(ConfigManager.getInstance().getRecordPath());
            cmd.append(month);
    //        cmd.append(ConfigManager.getInstance().gettMonth());
            cmd.append(" | ");
            cmd.append("sed -n '/");
            cmd.append(yestoday);
    //        cmd.append(ConfigManager.getInstance().gettDay());
            cmd.append("/p'");
            String cmdString = cmd.toString();
            logger.debug("will execute cmd : {}",cmdString);
            list = new LinuxCmdUtil().executeLinuxCmd(cmdString);
    //        new LinuxCmdUtil().executeLinuxCmdT(cmd.toString());
            if(list != null) {
    //            info.setPath(ConfigManager.getInstance().getRecordPath()+ConfigManager.getInstance().gettMonth());
    //            info.setMonth(ConfigManager.getInstance().gettMonth());
                info.setPath(ConfigManager.getInstance().getRecordPath()+month);
                info.setMonth(month);
                info.setWavList(list);
                return info;
            }
            return null;
        }
  • 相关阅读:
    程序员保持快乐活跃的6个好习惯(转)
    Spring MVC Hello World Example(转)
    Oracle定时执行存储过程(转)
    各种常见数据库分页实现(转)
    Linux SSH常用总结(转)
    让人深思......
    void及void指针含义的深刻解析
    UVa 11988
    网络编程学习小结
    Deep Learning(深度学习) 学习笔记(四)
  • 原文地址:https://www.cnblogs.com/yoyotl/p/8626013.html
Copyright © 2011-2022 走看看