当前位置:IT教程网教程中心程序开发Shell → 教程内容

请问,使用find 命令查找某个时间段的shell怎么写。比如11点到12

减小字体 增大字体 作者:佚名  来源:不详  发布时间:2006-12-27 13:51:00



 valentine 回复于:2002-04-24 09:48:59
创建一个脚本judgetime,内容如下:

ls -l $*|awk '{split($8,hour,":";if((hour[1]>23 || hour[1] < 1)&&hour[1]<24)print}'

到要查找的目录下,运行
find ./ -name "*" -exec judgetime {} \;

注意时间格式为24小时制。





 shootero 回复于:2002-04-24 10:02:30
thank you ,如果我要精确到分钟呢

 仓库保管员 回复于:2002-04-24 10:08:59
touch -t 04241112 starttemp  #精确到12分钟
touch -t 04241220 endtemp  #截止到12点20
find [dir] -newer starttemp -a ! -newer endtemp -exec ls -l {} \;

 valentine 回复于:2002-04-24 10:16:52
newer?
那昨天12:10文件如何呢?

 shootero 回复于:2002-04-24 10:32:21
谢谢大家的帮助。

 仓库保管员 回复于:2002-04-24 10:33:27
每天执行的时候,用当天的日期和时间戳替换一下不就行了吗?
我不知道他是不是把所有的11:00~12:00的都找出来,是不是只执行一次还是每天都执行?

 valentine 回复于:2002-04-24 10:36:01
这种情况俺猜想是自己的东西放在哪忘了,只记得当时是深夜了。

 仓库保管员 回复于:2002-04-24 10:38:56
有道理!
不愧是斑竹!
不光知道怎么解决问题,还知道在什么情况下出现这类问题,佩服佩服!

 shootero 回复于:2002-04-24 10:52:54
问题又出现了。创建这个文件的时候。本来应该是时间的一栏现在写上了2002,而不是12:00.

 仓库保管员 回复于:2002-04-24 11:51:22
等到12:00过了吧!

 penda 回复于:2003-06-17 22:16:55
创建一个脚本judgetime,内容如下: 

ls -l $*|awk '{split($8,hour,":");if((hour[1]>23 || hour[1] < 1)&&hour[1]<24)print}' 

为什么split函数返回的数组hour不能用printf("%s",hour)这样的形式打印出来,只能printf("%d",hour[1]),printf("%d",hour[2])这样来打印。

请高手请教返回的数组是什么类型的!

广告位置