免费注册 查看新帖 |

Chinaunix

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

[文件目录] 删除指定时间72小时之前的的数据(不是基于当前系统时间) [复制链接]

论坛徽章:
2
亥猪
日期:2015-01-19 15:47:392015年亚洲杯之朝鲜
日期:2015-04-08 16:27:18
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-04-16 15:08 |只看该作者 |倒序浏览
        请问各位大大,我想查找并选中某个特定时间之前的72小时文件数据,并将剩余的文件全部删除采用什么方法呢。还有特定时间是根据当前目录下最新产生的文件名(时间戳)(不是当前系统时间)




  1. ls -l|tail +1|awk '{print $9}'
复制代码
  1. 150330,085306,M6,SN7654321.wav
复制代码


我选中了最后一个数据的最后的时间格式,怎样转换计算72小时之前的那个时间点,并且选中这两个时间点中间的文件并删除其他文件呢

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
2 [报告]
发表于 2015-04-16 22:10 |只看该作者
  1. ls --full-time -t | awk 'NR==2{gsub(/-/," ",$6);gsub(/:/," ",$7);a=$6" "$7}NR>=2{gsub(/-/," ",$6);gsub(/:/," ",$7);b=$6" "$7;c=mktime(a)-mktime(b);if(c<=60*60*72)print $NF}'
复制代码

论坛徽章:
2
亥猪
日期:2015-01-19 15:47:392015年亚洲杯之朝鲜
日期:2015-04-08 16:27:18
3 [报告]
发表于 2015-04-17 13:23 |只看该作者
这个不可行,我表达的也不行,我自己慢慢写吧回复 2# cao627


   

论坛徽章:
22
处女座
日期:2014-10-11 13:33:292015亚冠之塔什干火车头
日期:2015-07-20 19:59:042015亚冠之塔什干火车头
日期:2015-07-26 10:59:31程序设计版块每日发帖之星
日期:2015-08-05 06:20:00每日论坛发贴之星
日期:2015-08-05 06:20:00程序设计版块每日发帖之星
日期:2015-08-07 06:20:00每日论坛发贴之星
日期:2015-08-07 06:20:002015亚冠之阿尔纳斯尔
日期:2015-10-01 15:23:28白银圣斗士
日期:2015-12-07 17:17:06操作系统版块每日发帖之星
日期:2015-12-27 06:20:002015亚冠之广州富力
日期:2015-07-08 15:48:31程序设计版块每日发帖之星
日期:2015-06-11 22:20:00
4 [报告]
发表于 2015-04-17 16:03 |只看该作者
写出来没有,比如说仅想保留3天前  再之前72小时的数据
试试这样行不行
find ./ -mtime -3 -o -mtime +6 |grep -v './'

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
5 [报告]
发表于 2015-04-17 20:12 |只看该作者
回复 3# 791605975
  1. /tmp/test$ touch -t 201505170100.10 a  
  2. /tmp/test$ touch -t 201505160100.10 b  
  3. /tmp/test$ touch -t 201505150100.10 c  
  4. /tmp/test$ touch -t 201505140100.10 d
  5. /tmp/test$ touch -t 201505140059.10 e
  6. /tmp/test$ ls --full-time
  7. total 0
  8. -rw-rw-r-- 1 czj czj 0 2015-05-17 01:00:10.000000000 +0800 a
  9. -rw-rw-r-- 1 czj czj 0 2015-05-16 01:00:10.000000000 +0800 b
  10. -rw-rw-r-- 1 czj czj 0 2015-05-15 01:00:10.000000000 +0800 c
  11. -rw-rw-r-- 1 czj czj 0 2015-05-14 01:00:10.000000000 +0800 d
  12. -rw-rw-r-- 1 czj czj 0 2015-05-14 00:59:10.000000000 +0800 e
  13. /tmp/test$ ls --full-time -t | awk 'NR==2{gsub(/-/," ",$6);gsub(/:/," ",$7);a=$6" "$7}NR>=2{gsub(/-/," ",$6);gsub(/:/," ",$7);b=$6" "$7;c=mktime(a)-mktime(b);if(c<=60*60*72)print $NF}'
  14. a
  15. b
  16. c
  17. d
复制代码

论坛徽章:
2
亥猪
日期:2015-01-19 15:47:392015年亚洲杯之朝鲜
日期:2015-04-08 16:27:18
6 [报告]
发表于 2015-04-20 08:58 |只看该作者
是嵌入式arm,busybox做的shell,好多命令不支持。。。回复 5# cao627


   

论坛徽章:
2
亥猪
日期:2015-01-19 15:47:392015年亚洲杯之朝鲜
日期:2015-04-08 16:27:18
7 [报告]
发表于 2015-04-20 09:14 |只看该作者
我表达的有误,其实是目录下最后生成的文件的时间为起点,向过去推72小时,这段时间的数据都保留,更早的就删除,arm板的shell,限制比较多。。。回复 4# 聆雨淋夜


   

论坛徽章:
2
亥猪
日期:2015-01-19 15:47:392015年亚洲杯之朝鲜
日期:2015-04-08 16:27:18
8 [报告]
发表于 2015-04-20 09:28 |只看该作者
  1. ls -l *.wav|tail +1|echo `awk '{print $9}'`|sed 's/,/ /g'|awk '{print $1$2}'|awk '{print substr($0,1,12)}'
复制代码
  1. 150330085306
复制代码
我提取了当前目录下最后生成的文件时间,算72小时之前那个点存在问题。
  1. date -d "2015-04-20 00:00:00" +%s
复制代码
这个支持。

下面这个不支持了
  1. date -d @1287331200  "+%Y%m%d"
复制代码
  1. date: invalid date '@1287331200'
复制代码
我再想想

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
9 [报告]
发表于 2015-04-20 12:23 |只看该作者
本帖最后由 bikkuri 于 2015-04-20 12:23 编辑
  1. eval "$(ls -l --time-style=+%s|awk '{if(max<$6)max=$6;file[$6]=$7}END{for (time in file){if(max-time>72*60*60)print "rm -f "file[time]}}')"
复制代码

论坛徽章:
2
亥猪
日期:2015-01-19 15:47:392015年亚洲杯之朝鲜
日期:2015-04-08 16:27:18
10 [报告]
发表于 2015-04-21 14:06 |只看该作者
大概明白思路,取出时间戳做差,大于72*60*60秒的文件删除回复 9# bikkuri


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP