RedHat/Centos

关注公众号 jb51net

关闭
操作系统 > RedHat/Centos >

Centos文件搜索命令的讲解

脚本之家

1、locate--->文件查找事先生成的数据库,模糊查找,updatedb更新locate数据库

-i:忽略文件名的大小写

-n:只显示前n行eg:locate-n3passwd

2、find---->实时查找,精确匹配文件名

find[DIR...][CRIERIA][ACTION...]

DIR:/root/home..(默认当前目录)

ACTION;

-print(默认)

-ls

-okCOMMAND交互式执行命令

-execCOMMAND非交互式执行命令

xargs从标准输出中执行和创建命令

eg;find/root-name"[[:alpha:]][[:digit:]]"-execmv{}{}\;//{}代表前面查找的结果,后面必须用\;结尾

find/root-name"[[:alpha:]][[:digit:]]"|xargschmod755

CRIERIA:

-name:精确到指定的文件名

-iname:根据文件名查找,但不区分大小写

-user:根据属主查找

-group:根据属组查找

-uid:根据uid查找

-gid:根据gid查找

在指定时间段里查找:

-atime:[+/-]N(accesstime):+-表示---(+)----N---(-)----currentday

eg:find-atime-3-execls-l{}\;

-mtime:(modificationtime)同上

-ctime(changetime)同上

-amin以分种为单位,同上

-mmin

-cmin

-anewera.txt比a.txt更近的访问

eg:find-anewersh01.sh-execls-l{}\;

-newer相当于modificationtime

-cnewer相当于changetime

-type:按照类型查找

d(目录),l(链接文件),f(普通文件),s(套接文件),

b(块设备),c(字符设备),p(命令管道文件)

eg:find/var-typel-execls-l{}\;

-size:按照大小查找

[+/-]N

-perm[+/-]mode根据权限查找

mode755

-222每一类用户都要匹配

eg:find/tmp/myscrip-perm-001

/222某一个用户只要有一类权限的即可

-nouser:没有用户

eg:find/-nouser查看没有用户名的文件,一般这种文件有一定的危险性

-nogroup:没有组的

查找条件连接:

-a:&&通常可以省略

eg:find-userroot-typef-execls-dl{}\;

-o:||

eg:find-usernamed-o-typed-execls-ld{}\;

-notor!:!

eg:find-not\(-typed-a-userroot\)-execls-ld{}\;

-ls-l`find/-namepasswd`

文件名通配:*任意一个字符,?单个字符,[]

eg:find/tmp-namea*//查找以a开头的文件