免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: linfenghuaster
打印 上一主题 下一主题

在线等,怎么找出目录里最后修改的文件 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-04-27 15:06 |只看该作者
回复 10# howge

论坛徽章:
0
12 [报告]
发表于 2011-04-27 18:26 |只看该作者
谢谢,各位大大的建议,但是,我都试了,不给力啊。要求是,找出一个目录(任意)中最新的文件,并输出,10L的找出了各个目录的文件排序,但是怎么把不同目录里的文件排序,并且输出最新的文件(可以有多个,得最新,比如修改,创建,访问等)

论坛徽章:
0
13 [报告]
发表于 2011-04-27 22:41 |只看该作者
  1. #!/bin/bash

  2. dir=$1
  3. newest=`date --date="1970-01-01 00:00:00" +%s`
  4. for file in `find $dir -type f | xargs`
  5. do
  6. access_time=`ls -l  $file | awk '{ printf $6" "$7" "$8}'`
  7. access_time=`date --date="$access_time" +%s`
  8. if [ $access_time -gt $newest ]
  9. then
  10.   newest=$access_time
  11.   newest_file=$file
  12. fi
  13. done

  14. echo "the latest file is $newest_file"
复制代码
写的比较烂  应该勉强可以用~

论坛徽章:
0
14 [报告]
发表于 2011-04-28 09:09 |只看该作者
写的比较烂  应该勉强可以用~
wendy_85 发表于 2011-04-27 22:41


谢谢wendy_85,可以工作了,呵呵。但是,有2个问题哈:
1) +%s 效果是,将时间转换为s,但是“+”是什么意思啊?,我用man date  就看到 %s的意思,是新手,所以想问下?
2) 用 date --date="1970-01-01 00:00:00" +%s  ,它的结果是-28800 ,而不是0,手册是说从1970-01-01 00:00:00开始计时的,(我试了下,   date --date="1970-01-01 08:00:00" +%s  结果是0)

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
15 [报告]
发表于 2011-04-28 10:08 |只看该作者
find|xargs|sort|tail

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
16 [报告]
发表于 2011-04-28 10:12 |只看该作者
谢谢wendy_85,可以工作了,呵呵。但是,有2个问题哈:
1) +%s 效果是,将时间转换为s,但是“+”是什 ...
linfenghuaster 发表于 2011-04-28 09:09


1. man date
NAME
       date - print or set the system date and time

SYNOPSIS
       date [OPTION]... [+FORMAT]
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

2. timezone
# date --date="1970-01-01 00:00:00" +%s
-28800
LVL=1 [root@atayal-server ~]
# date -u --date="1970-01-01 00:00:00" +%s
0

论坛徽章:
0
17 [报告]
发表于 2011-04-28 11:49 |只看该作者
查找文件,然后根据修改日期排序,取最靠前的几个

论坛徽章:
0
18 [报告]
发表于 2011-04-28 11:57 |只看该作者
1. man date
NAME
       date - print or set the system date and time

SYNOPSIS
       date  ...
jason680 发表于 2011-04-28 10:12



    谢了,没有仔细看的结果,失败的典型啊,下回得仔细看手册了,呵呵。 那默认用的是什么时间啊?

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
19 [报告]
发表于 2011-04-28 12:21 |只看该作者
谢了,没有仔细看的结果,失败的典型啊,下回得仔细看手册了,呵呵。 那默认用的是什么时间啊?
linfenghuaster 发表于 2011-04-28 11:57


cat /etc/sysconfig/clock

论坛徽章:
0
20 [报告]
发表于 2011-04-28 18:15 |只看该作者
cat /etc/sysconfig/clock
jason680 发表于 2011-04-28 12:21



    打击,本地时区是在上海的东八区,嗨。看到08:00:00 ,应该联想到的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP