linux文件查找命令find的应用

在linux中,常见的用于文件查找的命令有locate和find

locate的工作原理:全局查找,根据系统文件数据库查找,这个数据库在同运行一段时间会自动生成,前提是安装了mlocate软件包。

mlocate软件包安装生成locate命令和updatedb命令,而后者就是用于手动生成locate查找文件时使用的数据库的命令,这个数据库默认就是/var/lib/mlocate/mlocate.db,同时mlocate软件包生成的一个重要文件就是/etc/cron.daily/mlocate.cron(script),在脚本里面调用了update命令从而达到通过任务计划 方式自动建立这个数据库的目的

因此,由于locate是根据数据库进行的查找,locate的特点就是速度快,和grep一样,是模糊查找(贪婪模式)

find:find命令执行的是精确查找,而且支持众多 查找标准,需要指定在哪个目录下查找(不指定默认就是当前目录),但是,由于需要遍历目录下的所有文件,所以速度慢

find命令的使用格式:find directory  pattern action

directory表示在哪个目录下查找

pattern用于指定查找标准

action用于指定对查找到的内容执行的操作(默认为打印至屏幕)

pattern:

1.根据文件类型查找  -type  character

character的取值:d表示目录文件,f表示一般文件,l表示链接文件,s表示套接字文件,p表示管道文件等                           2.根据文件权限查找 -perm  MODE

-perm  /MODE

-perm -MODE

MODE:表示九个权限位必须严格匹配,例如-perm 644,那么就只有权限为rw-r--r--的文件才符合

/MODE:表示九个权限位其中有一位匹配即可,例如-perm /644 ,644表示 权限就是rw-r--r--,那么只要和其中一位相同的文件都符合条件,例如004权限的文件

-MODE:表示文件权限必须包含查找标准权限,例如-perm -644 ,644表示 权限就是rw-r--r--,那么匹配文件的权限必须包含rw-r--r--,例如644权限,755权限

3.根据文件属主,属组查找-user -group

-user hadoop 查找属主是hadoop的文件有哪些

-group hive 查找属组是hive的文件有哪些

-uid,-gid根据文件属主属组的id号查找

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件

当一个用户被删除后,之前属于该用户的文件的属主属组就会变成该用户的uid,gid,此时查找这些文件可用上述uid的方法或者是nouser的方法

4.根据文件大小查找 -size 【+|-】#

单位有k,M,G默认是字节,在数字之前+号表示查找大于指定大小的文件

-号表示查找小于指定大小的文件

5.根据文件名查找

-name 区分大小写

-iname 不区分大小写

此外,文件名可以使用通配符

6,根据时间戳查找

-ctime 【+|-】#最近一次改变时间

-mtime    最近一次修改时间

-atime最近一次访问时间

#表示最近一次--时间距离现在刚好#天

-#表示#天内被访问过的文件(文件最后一次--距离现在的时间在#天内)

+#表示#天前被访问过的文件(文件最近一次--距离现在的时间在#天前)

-cmin            -mmin         -amin(单位为分钟,用法同上)

7.使用组合条件测试

-a:与

-o:或

-not:非

action:-ls(将查找到的文件以ls -l的格式显示)

-print(默认行为)

-ok COMMAND

-exec COMMEND

-ok和-exec后都可以使用shell 命令,如果使用的命令需要输入被命令处理 的文件,使用{}引用find命令查找到的文件,shell命令之后整个语句必须使用  \; 结尾

-ok和-exec的不同:-ok在执行的每一次操作之前都需要用户手动的确认,而-exec则不需要

时间: 2024-12-20 21:47:11

linux文件查找命令find的应用的相关文章

Linux 文件查找命令find,xargs详述

Linux文件查找命令find,xargs详述     <exec 后期讲解> 关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限. 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统). 一.find 命令格式 1.find命令的一般形式为:

Linux文件查找命令find,xargs详述

转自:http://www.linuxsir.org/main/node/137本文进行了整理修订 Linux文件查找命令find,xargs详述 摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解:本文是zhyfly兄贴在论坛中:我对本文进行了再次整理,为方便大家阅读: 目录 版权声明 前言:关于find命令 一.find 命令格式 1.find命令的一般形式为: 2.find命令的参数: 3.find命令选项: 4.使用exec或ok来执

Linux文件查找命令find,xargs详述【转】

转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Linux文件查找命令find,xargs详述 总结:zhy2111314来自:LinuxSir.Org整理:北南南北摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解:本文是zhyfly兄贴在论坛中:我对本文进行了再次整理,为方便大家阅读: 目录

Linux文件查找命令

1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> - <指定目录>: 所要搜索的目录及其所有子目录.默认为当前目录. - <指定条件>: 所要搜索的文件的特征. - <指定动作>: 对搜索结果进行特定的处理. 如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显

Linux文件查找命令find用法整理(locate/find)

Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2.find 实时,精确,功能强大,用法: find 路径 查找标准 查找后动作 (1)路径:. 或者 ./ 均表示当前目录 (2)查找标准: -name 'FILENAME' 文件名精确匹配(支持通配符* ? []) -iname 'FILENAME' 文件名模糊匹配(不分大小写) -regex P

linux文件查找命令之 find用法

linux文件系统文件查找命令:locate,find locate特性: 非实时查找:根据索引查找( 查找速度快,非精准查找,模糊查找) find特性: 实时查找:遍历所有文件进行条件匹配(精准查找,速度慢) find是生产环境常用命令 用法:  find [选项 ] [查找路径] [查找条件] [处理动作] 查找条件: 根据文件名查找: 支持使用通配字符 如: *,?,[],[^]等 -name"文件名称": -iname"文件名称":查找时忽略字符大小写 -u

Linux文件查找命令详解-which whereis find locate

原创BLog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=contents which命令 首先查看man which的说明 which - shows the full path of (shell) commands. 在$PATH目录下查找命令的绝对路径,PATH配置不同,查找的结果也不同 查看系统的PATH [[email protected] testForCsdn]# echo $PATH /usr/kerberos/sbin:/u

Linux文件查找命令find(转)

Linux find命令用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名.如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件.并且将查找到的子目录和文件全部进行显示. 语法 findpath -option [-print] [-exec -ok command] {} ; 参数说明: find 根据下列规则判断path和expression,在命令列上第一个-(),!之前的部份为path,之后的是expression.如果path是空字串则

Linux文件查找命令 find 详解

关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统). 一.find 命令格式 1.find命令的一般形式为: find pathname -options [-print -exec -ok .