Unit 12 Finding and processing files
Keyword: find, locate
好久更新,这两天加紧一些。
这节相对简单,主要只是说locate和find这两个命令。一般做文件搜索的时候基本都是使用这两个命令,两个命令最大的分别是locate是从自己的数据库里面找文件,而find是实时从文件系统里面找文件。对find就简单些,文件系统里面有就有,没有就没有。而locate而就牵涉到数据库的问题。因为locate是从数据库找文件的索引,所以速度会非常快(当有百万级的文件的时候就非常明显了),但为了系统的性能locate的数据库是不会常常update的,所以就会发生搜索错误的问题。
一般应用中,搜索范围比较小、要符合多种条件或者是比较重要的脚本都会使用find。搜索条件除了文件名以外,还可以是uid、gid、文件系统安全、时间、文件大小等细致的参数。而如果搜索范围是一些历史文件或者已经归档的文件等一般不会再变动的文件就可以使用locate,也可以进行一些比较粗略的搜索。总体来说,文件搜索以find优先。
*locate*
locate –i 忽略大小写
locate –n {number} 只显示头number个结果
locate –e 只显示文件存在的记录
*find*
find –name 名字参数,支持通配符
find –iname 忽略大小写
find –not 非,在其他参数前面。可以用“!”代替
find –user 根据用户搜索
find –uid 根据uid搜索
find –group 根据组搜索
find –perm 根据文件安全属性搜索
find –type 根据文件类型搜索
find –size 根据文件大小搜索
find –atime 最后一次读取时间
find –mtime 最后一次修改时间(主要针对文件内容)
find –ctime 最后一次修改元数据(包含文件状态)
find –amin 以分钟为单位
find –mmin以分钟为单位
find –cmin以分钟为单位
find –exec 将搜索结果作为执行的命令的参数。命令以“{}”代替搜索结果,并且要以“\;”结尾
find –ok 与exec相似,不过在每次执行之前都会提示是否执行
find –ls 将搜索结果以ls的形式显示出来
阅读(396) | 评论(0) | 转发(0) |