Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2072880
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-04-24 10:24:44

大家好,我想通过以下脚本,取得目录下各个文件的最新修改时间
ls -l|grep -v total|awk '{print $(NF-3)" "$(NF-2)" "$(NF-1)}'
输出如:
Apr 21 13:48
Jan 01 1990
Apr 22 17:33
Jan 01 1990
Apr 21 13:03
Jan 01 1990
Apr 22 17:33

现在我想取得这些时间中最早的时间和最晚的时间之间的时间差,并转换成秒数,请问怎么实现呢?
先谢过了!



您对本贴的看法:
| |
  帅哥
老法王


CU奥运火炬传递手2008
荣誉会员  
CU编号: 187152
注册:2004-10-1
最后登录: 2009-04-23
帖子:
精华:







来自:北京海淀
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 13:46 
用date +%s求出秒数,再比较



您对本贴的看法:

__________________________________


Window$ XP Professional service pack 2
CYGWIN_NT-5.1 + GNU bash version 3.2.39

| |
  帅哥
侠客




CU编号: 564603
注册:2007-5-16
最后登录: 2009-04-23
帖子:
精华:0







来自:福建
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 13:47 
回复 #1 huangbt_unix 的帖子

ls -l  --time-style="+%s"|grep -v total|awk '{printf $6" "}'|awk '{print $NF-$1}'



您对本贴的看法:

__________________________________

我是泛泛之辈,泛泛之辈很简单
| |
  帅哥 (黑哥)
精灵使



CU编号: 631768
注册:2007-10-22
最后登录: 2009-04-24
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 13:48 
回复 #1 huangbt_unix 的帖子

stat -c '%Y %n' files



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| |
(暗夜星空)
精灵使
休息休息



CU编号: 713644
注册:2008-6-3
最后登录: 2009-04-24
帖子:
精华:0







来自:广州<-->杭州
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 14:07 
回复 #3 泛泛之辈 的帖子

这个写得太漂亮了,非常牛X

[root@datacenter root]# ls -l  --time-style="+%s"|sort -k6|grep -v total|awk '{printf $6" "}'|awk '{print $NF-$1}'
120701819
不过为了避免有些系统的中文字体,最好加一下;

CODE:
LANG=C;ls -l  --time-style="+%s"|sort -k6|grep -v total|awk '{printf $6" "}'|awk '{print $NF-$1}'

[ 本帖最后由 我是DBA 于 2009-4-23 14:09 编辑 ]



您对本贴的看法:

__________________________________

有时候回答问题是信口开河......
因此不保证所有回复问题的答案的准确性.
如果正好是对的,那是碰到了死耗子..呵呵.
想着休息,不想做事!
| |
(狼烟)
精灵
披着狼皮的羊



CU编号: 547805
注册:2007-4-5
最后登录: 2009-04-24
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 14:19 


CODE:
stat -c %Y * | sort | tr '\n' ' ' | awk '{print $NF-$1}'

如果只判断文件,再加一个find处理即可。

CODE:
find . -type f | xargs stat -c %Y | sort | tr '\n' ' ' | awk '{print $NF-$1}'




您对本贴的看法:
| |

新手



CU编号: 482996
注册:2006-10-30
最后登录: 2009-04-23
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 14:39 
回复 #5 我是DBA 的帖子

再简化一下 :)

ls -tl --time-style="+%s" | grep "^-" | awk '{printf $6" "}' | awk '{print $1-$NF}'



您对本贴的看法:

__________________________________

This small part of my life is called happiness
| |

圣骑士




CU编号: 734926
注册:2008-7-25
最后登录: 2009-04-23
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 14:42 


QUOTE:
原帖由 我是DBA 于 2009-4-23 14:07 发表
这个写得太漂亮了,非常牛X

[root@datacenter root]# ls -l  --time-style="+%s"|sort -k6|grep -v total|awk '{printf $6" "}'|awk '{print $NF-$1}'
120701819
不过为了避免有些系统的中文字体,最好加一 ...

谢谢,但是,运行不成功啊!我用的是ksh,ls 没有 --time-style的选项,怎么办啊?



您对本贴的看法:
| |
  帅哥
风云使者




CU编号: 165273
注册:2004-6-16
最后登录: 2009-04-24
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 14:44 
上面给出的solution都局限于linux, 根本就不通用!!!!



您对本贴的看法:

__________________________________

a huge one-time effort gives you nothing, while small, everyday activities will give you a lot
| |
  帅哥 (21g)
精灵
自定义头衔



CU编号: 592658
注册:2007-7-27
最后登录: 2009-04-23
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-23 21:50 
回复 #8 huangbt_unix 的帖子

不知道有没黑哥所提到的stat命令:

CODE:
[root@localhost shell]# stat -c %Y /boot/* | sort -n | awk 'NR==1{a=$1}{b=$1}END{print b-a}'
43115622




您对本贴的看法:

__________________________________

种种田,泡泡CU^_^
| |

» » »
建议man find一下,好像有打印时间的功能。
find ... -printf ...



您对本贴的看法:

__________________________________

世上有两种人
一种是痛苦的人   /\../\ ~..~
一种是快乐的猪    (@)  (@)
\~~~^..^  ^. .^~~~/
  (___(oo)   (oo)___)

| |
(暗夜星空)
精灵使
休息休息



CU编号: 713644
注册:2008-6-3
最后登录: 2009-04-24
帖子:
精华:0







来自:广州<-->杭州
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-24 08:26 
回复 #11 r2007 的帖子

你指的是-mtime -ctime?
阅读(2121) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~