命令 | 查找对象 | 查找速度 | 备注 | |
which | 可执行文件 | 根据PATH变量的内容去寻找可执行文件 | 不同的PATH配置会有不一样的结果 | |
whereis | 程序名的搜索 | 根据数据库来寻找,速度快 | 只支持二进制文件,源代码,man手册 | |
locate | 文件或目录 | 根据数据库来寻找,速度快,属于模糊查找 | 更新数据库:$sudo updatedb | |
find | 文件或目录 | 在硬盘里寻找,速度慢,可以精准查找 | NA |
例子:
1.查找ls的可执行文件。
2.查找ls的二进制文件,源代码。
3.查找带有test的文件或目录。
任何带有test的文件,目录都会被找出来。
4.在boot/grub/i-386-pc的目录下查找带有test的文件。
find的用法:
find 路径 表达式:在该路径下寻找符合表达式的文件或文件夹。
find的复杂表达式能快速精准的找到目的文件:
表达式可能由下列成份组成:操作符、选项、测试表达式以及动作:
操作符 (优先级递减;未做任何指定时默认使用 -and):
( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2
位置选项 (总是真): -daystart -follow -regextype
普通选项 (总是真,在其它表达式前指定):
-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
--version -xdev -ignore_readdir_race -noignore_readdir_race
测试(N可以是 +N 或-N 或 N):-amin N -anewer FILE -atime N -cmin
-cnewer 文件 -ctime N -empty -false -fstype 类型 -gid N -group 名称
-ilname 匹配模式 -iname 匹配模式 -inum N -ipath 匹配模式 -iregex 匹配模式
-links N -lname 匹配模式 -mmin N -mtime N -name 匹配模式 -newer 文件
-nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
-readable -writable -executable
-wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
-used N -user NAME -xtype [bcdpfls]
-context 文本
操作: -delete -print0 -printf 格式 -fprintf 文件 格式 -print
-fprint0 文件 -fprint 文件 -ls -fls 文件 -prune -quit
-exec 命令 ; -exec 命令 {} + -ok 命令 ;
-execdir 命令 ; -execdir 命令 {} + -okdir 命令 ;