linux下查找文件或目录(which,whereis,locate,find)

命令 查找对象 查找速度 备注  
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 命令 ;

拒绝低效率勤奋,保持高效思考
原文地址:https://www.cnblogs.com/timeisbiggestboss/p/7039403.html