find平时用于查找文件是不可缺少的,find的用法也比较复杂,平时我们用的最多的就是:
find ./ -name "*filename*"
了, 其他一些复杂的用法平时都不怎么用到,这里列下shitou经常用的参数吧:
#找出当前目录下所有以production开头.log结尾的文件 find ./ -name "production*.log" #如果当前目录下还有其他子文件夹,但你不想递归查找子文件夹下的目录时使用 find ./ -maxdepth 1 -name "production*.log" #如果碰巧当前目录下有个匹配到"production*.log"的文件夹,而你只想要regular(一般)文件时 find ./ -maxdepth 1 -name "production*.log" -type f #找出当前目录下包含有shitou字符的文件 find ./ -maxdepth 1 -type f | xargs fgrep 'shitou' #好的,我们继续 #如果你想找最近7天创建的文件时 find ./ -maxdepth 1 -name "production*.log" -type -ctime -7 #如果你想找7天前创建的文件时 find ./ -maxdepth 1 -name "production*.log" -type -ctime +7 #下面来个正真非业余研究的 #如果你想找一个时间段内创建的文件时怎么办呢,find只支持-cnewer参数,即找到比某个文件创建时间更新的文件, #不过利用这个就够了 #首先我们创建两个文件,并且指定创建时间就为我们要寻找时间段的起至, 用于我们作为基准比较使用 touch tmp -t 201005130000 touch tmp1 -t 201005200000 #上面给定时间戳时要按照“年年年年月月日日时时分分”方式指定,好了现在就可以了 find ./ -maxdepth 1 -name "production-*log" -type f -cnewer tmp -and ! -cnewer tmp1
上面的-ctime为create time的意思,还有-atime(access time),-mtime(modify time)
-type参数还可以有d(目录),f(一版文件),等等
另外还有-group查找指定用户组的,-perm查找指定权限的(0644这样的),-size指定大小,-regex使用正则表达式
find后还可以跟管道(|),用xargs命令把查找到的文件用作后续命令的参数传递进来,看上面的例子
如来神掌打完收工
参考资料
Finding Files
2010-05-21 11:36:29, 947 reviews, comment
send to mailbox
strace使用
少年,不点下广告吗!
all by shitou
blog comments powered by Disqus