locate :基于文件数据库搜索速度快,支持模糊匹配.
-i 忽略大小写
-n N 找到对应文件后只显示前N行
updatedb: locate数据库生成,不过速度比较慢,需要遍历文件.
find : 实时检索,精确匹配文件名,
格式: find [DIR,...] [CRITERIA (规则)] [ACTION...]
[ACTION] 默认print
[CRITERIA (规则)]: 默认当前目录
1.根据文件名搜检索:
-name 以文件名查找,支持文件名统配* ? []
例: find /etc -name "passwd"
-iname 不区分文件名大小写
2.根据属主,属组检索:
-user find /home -user redhat
ls -l `find /home -user redhat`
-group 同上
-uid 用户被删除而文件未被删除 其文件属主uid
-gid
-nouesr 没有用户
-nogroup 没有属组
3.根据属性检索:
-type 类型 f d l s b c p
-cnewer 属性
-newer 内容
-size 根据文件大小 [+/-]N
特例:find /etc -size 1M 找到小于1M的文件
2M表示精确为2M的文件+ 1M 大于1M
4.根据权限:
-perm [-/]mode +号不常用
find /tmp -perm 755 精确匹配
find /tmp -perm -222 属主,属组,其他用户权限都要匹配
+222 同"/"有一类匹配即匹配
/777 权限有一位权限匹配就匹配
/001 匹配有执行权限的文件
5.根据文件时间:
-atime 例: find /etc -atime +5 表示五天没访问的文件."-5"表示天内访问过的.
-mtime 用法同上
-ctime 用法同上
-amin 时间以分钟为单位 用法同上
-mmin 用法同上
-cmin 用法同上
-anewer 例:find /etc -annewer /etc/passwd 访问时间比passwd访问更早的文件
ACTION :
-print 默认
-ls
-ok 要求确认
-exec COMMAND
find ./ -perm /001 -not -type d -exec chmod o-x {} \;
find ./ -name "[[:alpha:]][[:digit:]]" -exec mv {} {}.old \;
{} 表示之前找到的文件名
find -name "*.old" | xargs chmod 755
---------------------
Linux的五个查找命令
1. find
find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
find的使用格式如下:
$ find <指定目录> <指定条件> <指定动作>
- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
- <指定条件>: 所要搜索的文件的特征。
- <指定动作>: 对搜索结果进行特定的处理。
如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
find的使用实例:
$ find . -name 'my*'
搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。
$ find . -name 'my*' -ls
搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
$ find . -type f -mmin -10
搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。
2. locate
locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
locate命令的使用实例:
$ locate /etc/sh
搜索etc目录下所有以sh开头的文件。
$ locate ~/m
搜索用户主目录下,所有以m开头的文件。
$ locate -i ~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
3. whereis
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis命令的使用实例:
$ whereis grep
4. which
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which命令的使用实例:
$ which grep
5. type
type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。
type命令的使用实例:
$ type cd
系统会提示,cd是shell的自带命令(build-in)。
$ type grep
系统会提示,grep是一个外部命令,并显示该命令的路径。
$ type -p grep
加上-p参数后,就相当于which命令。
分享到:
相关推荐
which,whereis,locate,find的用法与区别
1.使用locate()方法 普通用法: SELECT`column`from`table`wherelocate('keyword',`condition`)>0 类似于java的indexOf(); 不过locate()只要找到返回的结果都大于0(即使是查询的内容就是最开始部分),没有查找到才...
本文档详细介绍了在Linux系统下which、whereis、locate、find 命令的区别,具体的应用方法,结合案例,非常的实用
linux下which、whereis、locate、find命令的区别.docx
在linux中有很多查找命令,今天小编抽空给大家讲解find和locate两个命令,非常不错,具有参考借鉴价值,需要的朋友参考下吧
3.locate:文件查找,依赖数据库 一、命令文件查找 如 查找ls命令的位置 which ls /usr/bin/ls //结果 我们可以看出命令所在目录在/usr/bin/下 二、文件查找find 语法:find [path…] [ options] [ expression] ...
locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,值得注意的是:版本不同,会有所不同。有的版本位置是 /var/lib/mlocate/mlocatedb...
locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动...
Linux下查找文件的命令有两个,分别是locate 和 find。 locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度...
locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天...
这是因为 Linux 系统会将系统内的所有档案都记录在一个数据库档案里面,而当使用 whereis 或者是底下要说的 locate 时,都会以此数据库档案的内容为准,因此,有的时后你还会发现使用这两个执行档时,会找到已经被杀...
如果出现如下bug:“Could not locate executable null\bin\winutils.exe in the Hadoop binaries”,则下载该文件,放入hadoop的bin文件夹下,并设置环境变量HADOOP_HOME:F:\hadoop2.7.x即可。
locate:文件查找,依赖数据库 一、命令文件查找 一、查找ls 命令的位置 # which ls //从PATH环境变量 或者 # whereis vim 二、任意文件 find 语法 find [path...] [options] ...
cudart64_110 cufft64_10 cublas64_11 cublasLt64_11 cusolver64_11 curand64_10 cusparse64_11 cudnn64_8等
在linux中,关于文件查找有如下三种命令: which 、find 、 locate 。其中find是应用最多,也是今天为大家着重介绍的命令。 which:用于命令查找。(which is 或者 whereis vim ) locate:文件查找,依赖数据库。 ...
linux 实用的查询5个命令, find,locate, whereis, where, type
In “Basic Security Testing with Kali Linux”, you will learn basic examples of how hackers find out information about your company, locate weaknesses in your security and how they gain access to your...
util.Shell (Shell.java:(694)) - Did not find winutils.exe: {} java.io.FileNotFoundException: Could not locate Hadoop executable: E:\hadoop-3.0.2\bin\winutils.exe -see ...
SUID定位 正确使用带有SUID / SGID的文件可能非常方便,但是,它会使您的系统面临许多安全风险。 SUID-Locate可以在Linux系统中轻松找到带有SUID或SGID位的文件。 作者 Kfir Shtober(Kfiros)2015