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;
        }
  • 相关阅读:
    Js使用WScript.Shell对象执行.bat文件和cmd命令
    wscript运行js文件
    Linux基础tree命令
    使用libssh2库实现支持密码参数的ssh2客户端
    zlib库剖析(1):实现概览
    Linux设置编译器环境变量
    开源的zip_unzip库
    黑客入门之单机游戏外挂
    linux定时任务的设置 crontab 配置指南
    Linux crontab定时执行任务 命令格式与详细例子
  • 原文地址:https://www.cnblogs.com/yoyotl/p/8626013.html
Copyright © 2011-2022 走看看