linux常用四个查找文件命令详解
1、根据 文件大小 搜索,如在根目录下查找大于 200M 的文件,find / -size +204800。这里 +n 表示大于,-n 表示小于,n 表示等于。
1 数据块 == 512 字节 0.5KB,也就是1KB等于2数据块。
100MB == 102400KB,等于204800数据块
-size 选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……)。
表示文件大小的单位有以下字符组成:
c:字节
k:Kb
M:Mb
G:Gb
2、find是最常用也是最强大的查找命令,它可以查找任何类型的文件。find查找的目录途径,分两种情况:
“.”代表是当前目录
“/”代表是根目录
find -name:直接根据文件名字来查找,比如,find / -name a.txt:在根目录下查找;当前目录查找 ,find . -name file.txt


3、-group:按照文件所属的组来查找文件。在home目录下查询所属组为 root 的文件,find /home -group root

4、-user:按照文件的属主来查找文件。在home目录下查询所有者为 root 的文件
find /home -user root
5、-perm:按照文件权限来查找文件。
如需要检索 /usr 目录下权限为 rwxr-xr-x 的文件,可以使用以下命令:
find /usr -perm u=rwx,g=rx,o=rx
搜索 /usr 目录下所有权限为 r-xr-xr-x(即系统中的所有用户都只有读写权限)的文件和目录,可以使用以下命令:
find /usr -perm a=rx
find /usr -perm 644 搜索 /usr 目录下权限为 644(即 rwxr-xr-x)的文件。
6、-type 根据文件类型查找,f表示文件,d表示目录,l表示软链接。如查找 /home 目录下文件类型是目录,find /home -type d 。
7、用find命令查找到了文件,输出的方式有:
find / -name '*.txt' >a.txt或者
find / -name '*.txt' -print >a.txt,
将根目录下所 的以.txt命名的文件list输入到a.txt中


8、组合条件 搜索,-a 表示两个条件同时满足(and),-o 表示两个条件满足任意一个即可(or),如查找/etc目录下大于80MB同时小于100MB的文件
find /home -size +163840 -a -size -204800
1、locate,是在文件资料中查找文件。因为它不搜索具体目录,而是在一个数据库(/var/lib/locatedb)中搜索指定的文件。次数据库含有本地文件的所有信息,此数据库是linux系统自动创建的,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,默认情况下为每天更新一次,所以用locate命令你搜索不到最新更新的文件,除非你在用locate命令查找文件之前手动的用updatedb命令更新数据库。
命令格式:locate 文件名
参数:
-u:从根目录开始建立资料库。
-U:从指定位置开始建立资料库
-e:将某些路径排除在寻找的范围外。
-n:指定最多显示查找到的文件的个数
如,locate hcf

1、whereis命令搜索命令所在的目录及帮助文档路径。
命令格式:whereis [-bmsu] [BMS 目录名 -f] 文件名
命令功能:whereis命令是定位可执行文件、源代码文件,帮助文件在文件系统中的位置。这些文件的属性应属于原始代码、二进制文件、或是帮助文件。whereis程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。
参数:
-b:定位可执行文件
-m:定位帮助文件
-s:定位源代码文件
-u:搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其他文件。
-B:正定搜索可执行文件的路径。
-M:指定搜索帮助文件的路径。
-S:指定搜索源代码文件的路径。
1、搜索命令所在的目录及别名信息:which。语法:which【命令】,如which ls
which命令是在PATH变量指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。也就是说,使用which命令,就可以看到系统命令是否存在,以及执行的到底是哪一个位置的命令。
命令格式:which 可执行文件名称
which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。
