Chinaunix

标题: 请教各位如何用find命令加shell 按时间找出文件? [打印本页]

作者: yjhz    时间: 2004-03-24 18:10
标题: 请教各位如何用find命令加shell 按时间找出文件?
请教各位如何用find命令加shell 找出几年几月几日几时以前创建的文件?

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

不知道用正则表达式+shell程序能不能搞定
作者: bjgirl    时间: 2004-03-24 18:18
标题: 请教各位如何用find命令加shell 按时间找出文件?
可以考虑用amin n,cmin n,mmin n, 都是精确到分钟的呀
作者: whn3375    时间: 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
作者: 朽木可雕    时间: 2004-03-24 20:24
标题: 请教各位如何用find命令加shell 按时间找出文件?
SOLARIS8没这个选项。
作者: panlm    时间: 2004-03-24 21:34
标题: 请教各位如何用find命令加shell 按时间找出文件?
hpux 也没有
作者: whn3375    时间: 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 {} \;

不知道能否解决你的问题。
作者: yjhz    时间: 2004-03-26 12:06
标题: 请教各位如何用find命令加shell 按时间找出文件?
看来只有用上面这位朋友说的时间章文件的办法了
作者: yjhz    时间: 2004-03-26 12:07
标题: 请教各位如何用find命令加shell 按时间找出文件?
如果说换个问法,因为文件都是按序号顺序生成的比如从a_0001.arc到a_0100.arc
能不能用find -name 加上正则表达式来完成找出序号从1-100的文件呢
作者: whn3375    时间: 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文件,每次读一行的方式进行查找。
作者: r2007    时间: 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'
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2