Linux中查找文件的有好多,可能你们普遍用到比较多的是find,但locate、whereis、which也是比较好用的查找。
它们的主要区别是:
find:是个很强悍的查找,能做到实时查找,精确查找,但查找内容较多时速率慢,效率低
locate:查找速率快linux 版本,但不是实时查找,查找的结果不精确
whereis:用于查找二补码文件、源代码文件和帮助指南;
which:会在环境变量$PATH设置的目录里查找符合条件的文件
1
find查找文件
find拿来在指定目录下查找文件。
任何坐落参数之前的字符串都将被视为欲查找的目录名。
假如使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。而且将查找到的子目录和文件全部进行显示。
find
path:所要搜索的目录及其所有子目录。默认为当前目录。
expression:所要搜索的文件的特点。
-cminn:在过去n分钟内被更改过
-ctimen:在过去n天内被更改过的文件
-mtimen:在过去n天内被更改过的文件
-mminn:在过去n分钟内被更改过
-empty:空的文件,找寻文件大小为0Byte的文件,或目录下没有任何子目录或文件的空目录;
-ipathp,-pathp:匹配文件路径马哥linux,ipath会忽视路径大小写
-namename,-inamename:匹配文件名称。iname会忽视名称大小写
-sizen:匹配文件大小,单位有:c--字节,k--千字节,M--兆字节,G--GB
-typec:匹配文件类型,c是指定的类型。(文件类型参数有:f--普通文件,d--目录,l--符号链接)
-exec:假定find指令的回传值为True,就执行该指令;
-ok:此参数的疗效和指定“-exec”类似,但在执行指令之前会先寻问用户,若回答“y”或“Y”,则舍弃执行命令;
-regex:指定字符串作为找寻文件或目录的范本式样
将当前目录及其子目录下所有.py后缀的文件列下来:
find.-name"*.py"
find.-iname"*.py"
匹配文件路径或则文件:
find/usr/-path"*local*"
基于正则表达式匹配文件路径:
find.-regex".*(.txt|.doc)$"
(查找当前目录及子目录下所有以.txt或.doc结尾的文件)
查找近来3天内被访问过的所有文件:
find.-typef-atime-3
在当前目录下查找文件宽度小于10kb的文件
find.-size+10k
2
locate查找文件
locate查找命令比较简单且不是实时的linux find命令源代码,而是以数据库的更新为准。
locate实际上查的是一个保存文档和目录名称的数据库,默认是/var/lib/slocate/slocate.db
Linux系统手动创建这个数据库,但是每晚手动更新一次,为此,我们在用locate查找文件时,有时会找到早已被删掉的数据,或则刚才构建文件,却难以查找到linux 系统 find命令源代码,诱因就是由于数据库文件没有被更新。
为了防止这些情况,可以在使用locate之前,先使用updatedb命令,自动更新数据库(也可以使用locate-u命令来更新)
查找出以passwd开头的所有文件
locatepasswd
查找出/data/jjing/目录下所有以test开头的文件或文件夹下的所有内容
locate/data/jjing/test
3
whereis查找文件
whereis命令只能用于程序名的搜索,并且只搜索二补码文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。假如省略参数,则返回所有信息。
查找passwd这个文件名有关的所有数据
#whereispasswd
passwd:/usr/bin/passwd/etc/passwd/usr/share/man/man1/passwd.1.gz
4
which查找文件
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,但是返回第一个搜索结果。也就是说,使用which命令,就可以看见某个系统命令是否存在,以及执行的究竟是哪一个位置的命令。
$whichgrep
/bin/grep
Linux查找文件的命令就介绍如此多了,关注「爱软测」,一起提高测试技术!
本文原创地址://gulass.cn/lzczwjdml.html编辑:刘遄,审核员:暂无