免费注册 查看新帖 |

Chinaunix

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

请教各位如何用find命令加shell 按时间找出文件? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-24 18:10 |只看该作者 |倒序浏览
请教各位如何用find命令加shell 找出几年几月几日几时以前创建的文件?

find -ctime这种参数只能是整型的,对精确到时分就不行了

不知道用正则表达式+shell程序能不能搞定

论坛徽章:
0
2 [报告]
发表于 2004-03-24 18:18 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

可以考虑用amin n,cmin n,mmin n, 都是精确到分钟的呀

论坛徽章:
0
3 [报告]
发表于 2004-03-24 19:01 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

-amin n
查找系统中最后n分钟访问的文件
eg     find / -amin -2 # 查找在系统中最后2分钟访问的文件
-------------------------------------------------------------------------
-cmin n
查找系统中最后n分钟被改变状态的文件
eg     find / -cmin -2 # 查找在系统中最后2分钟被改变状态的文件
-------------------------------------------------------------------------
-mmin n
查找在系统中最后n分钟里修改过的文件
eg     find / -mmin -2 # 查找在系统中最后2分钟里修改过的文件

参见
http://cmpp.linuxforum.net/cman/people/meaculpa/unformat/find.1.txt

论坛徽章:
0
4 [报告]
发表于 2004-03-24 20:24 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

SOLARIS8没这个选项。

论坛徽章:
0
5 [报告]
发表于 2004-03-24 21:34 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

hpux 也没有

论坛徽章:
0
6 [报告]
发表于 2004-03-25 08:38 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

以前看到过相关的帖子。这个问题似乎需要绕一下来解决。可以先建立两个带时间章的文件

touch -t 04241112 starttemp  #精确到12分钟
touch -t 04241220 endtemp  #截止到12点20

然后查找时间上位于这两者之间的文件。
find [dir] -newer starttemp -a ! -newer endtemp -exec ls -l {} \;

不知道能否解决你的问题。

论坛徽章:
0
7 [报告]
发表于 2004-03-26 12:06 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

看来只有用上面这位朋友说的时间章文件的办法了

论坛徽章:
0
8 [报告]
发表于 2004-03-26 12:07 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

如果说换个问法,因为文件都是按序号顺序生成的比如从a_0001.arc到a_0100.arc
能不能用find -name 加上正则表达式来完成找出序号从1-100的文件呢

论坛徽章:
0
9 [报告]
发表于 2004-03-26 17:00 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

#!/bin/sh

check0(){
_STR=$1
case $_STR in
    0|"" return 0 ;;
    *) return 1
        exit 1 ;;
esac
}

COUNTER_BEGIN=1
COUNTER_END=101

while [ $COUNTER_BEGIN -lt $COUNTER_END]
do
  CHA1=`echo "$COUNTER_BEGIN"|cut -c1`

  CHA2=`echo "$COUNTER_BEGIN"|cut -c2`
  if check0 $CHA2
  then
      $CHA2=0
  fi

  CHA3=`echo "$COUNTER_BEGIN"|cut -c3`
  if check0 $CHA3
  then
      $CHA3=0
  fi

  find $DIR -name "a_0$CHA3$CHA2$CHA1\.arc" >output_file
done

大致思路是这样的,时间的关系没有验证。可能是比较笨的方法喽。如果号码不连续的话,也可以干脆将其作为一个数组,直接放在程序头部。或是可以将其写入一个input文件,每次读一行的方式进行查找。

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
10 [报告]
发表于 2004-03-26 18:35 |只看该作者

请教各位如何用find命令加shell 按时间找出文件?

  1. find /to/your/path -regex '.*/a_0\(00[1-9]\|0[1-9][0-9]\|100\)\.arc'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP