1 which 查找可执行的文件:
使用whic命令即可查看某个命令是否存在,以及可执行的到底是哪个位置的命令。
搜索命令所在路径及别名。
[root@wangweicentos ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
2 whereis 查看文件的位置:
whereis命令只能用于搜索程序名,而且只能搜索二进制文件(选项 -b),man说明文件
(选项-m),源代码文件(-s)。如果省略参数,则返回所有信息。
搜索命令所在的路径以及帮助文档所在的位置。
选项:-b:只查找可执行文件
-m:只查找帮助文件
[root@wangweicentos ~]# whereis pwd
pwd: /usr/bin/pwd /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
[root@wangweicentos ~]# whereis -b pwd
pwd: /usr/bin/pwd
[root@wangweicentos ~]# whereis -m pwd
pwd: /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
3 locate
locate依赖于事先构建好的索引库:手动更新数据库(updatedb)
工作特性:查找速度快,模糊查找,非实时查找。
选项:-b:只匹配路径中的基名
-c:统计出共有多少个符合条件的文件
-r:BRE
4 find
实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找。
工作特性:查找速度慢,精确查找,实时查找。
用法:find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
一:查找条件:
1.按文件名查找:-name
-iname
支持glob风格的通配符:* ? [] [?]
-regex:基于正则表达式模式查找文件,匹配的是整个路径,而非其名;
二:根据文件从属关系查找:
-user:查找属主指定用户的文件;
-group:查找属组指定组的所有文件;
-uid:查找属主指定的UID的所有文件;
-gid:查找属组指定的GID的所有文件;
-nouser:查找没有属主的文件;
-nogroup:查找没有属组的文件;
三:根据文件的类型查找:
-type:f :普通文件
d:目录文件 l:符号链接文件
b:块设备文件 c:字符设备文件 p:管道文件 s:套接字文件
组合测试:与:-a 或:-o 非:-not,!
! A -a !B = ! (A -o B)
! A -o ! B =! (A -a B)
四:按文件大小查找:
-size [+|-] #UNIT 常用单位:K M G
五:根据时间戳查找:
以“天”为单位:-atime -mtime -ctime
以“分钟”为单位:-amin -mmin -cmin
注意:通常情况下:
最近时间内其内容被修改过 -mtime
最近时间内被访问过的 -atime
六:根据权限查找:
-perm [\ | -]mode mode:精确权限匹配;
/mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;
9位权限存在“或”关系
-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;
9位权限存在“与关系”
经典案例:
七:目录层级:
-depth:在查找文件时,首先查找当前目录中的文件,然后再在子目录中查找。
-maxdepth levels 在某个层次目录中按照递减方法查找
-mindepth levels 在某个层次目录中按照递减方法查找
八:处理动作:
-print:输出至标准输出;默认的动作;
-ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;
-delete:删除查找到的文件;
-fls: /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;
-ok: COMMAND { } \ :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户 进行确认
-exec COMMAND { } \ :对查找到的每个文件执行由COMMAND表示的命令;
注意:find 传递查找的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;但是有些命令不能接受过长的参数,此时命令执行会失败;另一种方式可规避此问题:
find | xargs COMMAND