打印
[嵌入式linux]

Linux下最强大的文件查找工具find

[复制链接]
2656|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunplusedu2012a|  楼主 | 2013-4-22 17:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    今天带大家一起来学习linux下最强大的文件查找工具-find。find可以从文件名、读取修改时间、大小、类型等等来筛选文件,可以完成日常几乎所有的查找需求。
   
    先来看一个简单的例子:
    find /tmp/ -name 'galeki*'
    意思就是在/tmp目录下找出以galeki开头的文件,-name指出是对文件名进行筛选,是不是很简单明了?除了文件名,find还有更强大的筛选条件:
    1.时间:
    参数
    意义
    -atime n
    上一次存取时间在n*24小时前以内的文件
    -ctime n
    上一次状态改变在n*24小时前以内的文件
    -mtime n
    上一次修改时间在n*24小时前以内的文件
    -newer file
    比file所指的文件还要新的文件
    2.大小:
    参数
    意义
    -sizen[bkMG]
    大小为n(b为比特,k为KB,M为MB,G为GB)的文件
    3.所有者:
    参数
    意义
    -user name
    所有者用户名称是name的文件
    -group name
    所有者用户组群名称是name的文件
    例子:
    find /tmp/-name 'sess*' -mtime 1   #在/tmp目录下找到所有以'sess'开头、并且在一个小时以内修改过的文件
    find ./-name '*.zip' -size 546k       #在当前目录下找到所有546KB的zip压缩包文件
    find /tmp/-user 'galeki'               #在/tmp目录下找到所有所有者为galeki的文件
    另外,还可以用"+"、"-"来进一步修饰时间和大小的条件:
    find src/-mtime +2            #找出src目录下上一次修改时间在2天以前的文件
    finddownload/ -size +50M    #在download目录下找出大于50M的文件
    光找出文件还不够,我们还要对找出的文件进行处理才有意义,一般来讲可以把find的查找结果传递给其他的命令做进一步处理。find本身也提供了许多处理动作的选项。
    常用的处理动作:
    参数
    意义
    -print
   
    打印出找出文件的完整地址,一个文件一行
    -delete
   
    删除找出的文件
    -execcommand {} \;
   
    对每一个找到的文件执行command命令,
    并用文件替换"{}",\;是固定的结束符。
   
   
    例子:
    find /tmp/-ctime +7 -delete            #删除/tmp目录下一周以前创建的文件
    find ./-name '*.unk' -exec file {} \;   #找出当前文件夹下后缀是unk的文件,并用file命令显示每个文件的文件类型

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我很懒,什么也没有留下

49

主题

78

帖子

1

粉丝