免费注册 查看新帖 |

Chinaunix

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

[文件目录] 根据 stat 文件 的modify 时间进行文件操作 [复制链接]

论坛徽章:
1
2015亚冠之鹿岛鹿角
日期:2015-06-30 14:53:49
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-03-10 17:45 |只看该作者 |倒序浏览

在目录下有许多 .txt 类型的文本,把stat 文件 的modify 时间和当前时间对比,如果超过10分钟就把这个文件移动到其他目录
(想实现这个功能,可以用 find实现,现在想用下面的脚本做,不过写了一下,老是不对。请大家做一下

curtime=`date +"%Y-%m-%d %H:%M:%S"`
Sys_data=`date -d  "$CURTIME" +%s`  
for i in 'ls *.txt'
do
filetime=`stat $i|grep Modify |cut -c 9-27`
In_data=`date -d  "$filetime" +%s`
interval=`expr  $Sys_data - $In_data`
.
.
.
)

论坛徽章:
30
申猴
日期:2014-04-10 09:43:532015年亚洲杯纪念徽章
日期:2015-03-20 14:40:232015亚冠之阿尔纳斯尔
日期:2015-06-02 18:59:042015亚冠之阿尔希拉尔
日期:2015-06-30 15:22:572015亚冠之大阪钢巴
日期:2015-07-20 10:44:332015亚冠之阿尔纳斯尔
日期:2015-10-28 14:57:5215-16赛季CBA联赛之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16赛季CBA联赛之山西
日期:2016-07-25 21:54:2715-16赛季CBA联赛之北京
日期:2016-10-27 12:07:2315-16赛季CBA联赛之八一
日期:2017-07-07 16:39:0915-16赛季CBA联赛之吉林
日期:2017-09-04 12:14:43
2 [报告]
发表于 2016-03-10 22:15 |只看该作者
  1. for i in `ls *.txt`
  2. do
  3. t3=`stat $i | awk -F ':|.' '{if(match($0,"Modify: ([^.]+)",a)) {"date \"+%Y-%m-%d %H:%M:%S\"" |getline line;t1=mktime(gensub("-|:"," ","G",line));t2=mktime(gensub("-|:"," ","G",a[1]));print (t1-t2)/60}}'`
  4.    t4=`echo "$t3 > 10" | bc`
  5.    if [ $t4 -eq 1 ];then
  6.        mv file xxx
  7.    fi
  8. done
复制代码
回复 1# eatmyshort


   

论坛徽章:
2
luobin
日期:2016-06-17 17:46:36lufei
日期:2016-06-17 17:49:16
3 [报告]
发表于 2016-03-10 23:45 |只看该作者
#/bin/bash
#by hz_oracle 20160310

file=`find *.txt -type f`
for mvf in $file
do
modtime=`stat $mvf | grep Modify | awk -F"y:" '{print $2}' | awk -F"." '{print $1}'`
sjcha=$((`date "+%s"` - `date -d "$modtime" "+%s"`))
if [ "$sjcha" -lt 100 ];then
mv $mvf ./test/
echo "move file $mvf to test success"
fi
done

评分

参与人数 1信誉积分 +50 收起 理由
eatmyshort + 50 很给力!

查看全部评分

论坛徽章:
6
羊年新春福章
日期:2015-03-03 17:16:28双子座
日期:2015-03-03 17:16:56巳蛇
日期:2015-03-03 17:17:2415-16赛季CBA联赛之福建
日期:2016-03-11 09:05:00黑曼巴
日期:2016-07-07 16:58:1215-16赛季CBA联赛之吉林
日期:2016-11-14 09:23:07
4 [报告]
发表于 2016-03-11 09:32 |只看该作者
  1. #!/bin/bash
  2. for file_name in `ls /root/jiachen/1/`
  3. do
  4.   Modify_time=`stat $file_name |grep 'Modify'|sed -r 's/([^0-9].*)([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2})(\..*$)/\2/'`
  5.   Modify_t=`date -d "$Modify_time" +"%s"`       
  6.   Now_t=`date +"%s"`
  7.   let time=($Now_t-$Modify_t)/60
  8.   if [ $time -lt 10 ]
  9.   then
  10.     mv $file_name /test
  11.   fi
  12. done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP