Linux文件查找工具之find(详解)

find详解

一.find命令是什么?

实时查找工具,遍历指定目录中的所有文件完成查找。

二.find的工作特性:

实时查找

精确查找、支持众多查找标准

查找速度略慢

三.find的用法:

find [OPTIONS][查找路径][查找条件][处理动作]

(1)查找路径:指定具体的搜索目标的起始路径;默认为当前目录;

(2)查找条件:指定的查找标准,可根据文件名、大小、类型、从属关系、权限等标准进行。

根据文件名查找:

-name ‘FILENAME’:对文件名进行精确匹配;

支持支持glob风格的通配符:*, ?, [], [^]

-iname ‘FILENAME’:文件名匹配时不区分大小写;

-regex PATTERN: 基于正则表达式进行文件名匹配;

根据属主查找:-user USERNAME

根据属组查找:-group

根据UID查找:-uid UID

根据GID查找:-gid GID

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

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

按文件类型查找:-type f :普通文件

d:目录文件

l:符号链接文件

b:块设备文件

c:字符设备文件

p:管道文件

s:套接字文件

按文件大小查找:

-size [+|-] #UNIT

#UNIT:(#-1, #]

-#UNIT:[0,#-1]

+#UNIT:(#, oo)

常用UNIT:k ,M ,G

例:find /etc -size 10k,查找/etc下大于9k小于等于10k的文件 ;

find /etc -size -10k ,查找/etc下小于等于9k的文件 ;

find /etc -size +10k ,查找/etc下大于10k的文件。

组合条件:-a:且

-o:或

-not:非

!A -a !B =!(A -o B)

!A -o !B =!(A -a B)

根据文件的时间戳查找:

以“天”为单位,以 24 小时为一个单位。

图中最右边为目前的时间,越往左表示越早之前的时间轴;

3:表示3—4那一天的文件;

-3:表示小于等于3天内的文件;

+3:表示大于等于4天前的文件.

以“天”为单位:

-atime

-mtime

-ctime

以“分钟”为单位:

-amin

-mmin

-cmin

-newer file :file为一个存在的文件,列出比file还要新的文件名。

根据权限查找:

-perm[/|-] mode

mode:精确权限匹配

/mode: 任何一类用户(u,g,o,)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”的关系。

-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足,9位权限之间存在“与”关系。

(3)处理动作:对符合查找条件的文件做出的操作,例如删除、输出等操作;默认输出至标准输出。

-print:输出至标准输出;默认的动作;

-ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;

-delete:删除查找到的文件;

-fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;

-ok COMMAND {} \;   :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;

-exec COMMAND {} \;  :对查找到的每个文件执行由COMMAND表示的命令;

注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;但是有些命令不能接受过长的参数,此时命令执行会失败;如下命令模式可规避此问题:

find | xargs COMMAND

四、练习操作

1、查找/var目录下属主为root,且属组为mail的所有文件或目录;

2、查找/usr目录下不属于root, bin或hadoop的所有文件或目录;用两种方法;

3、查找/etc目录下最近一周内其内容修改过,且属主不是root用户也不是hadoop用户的文件或目录;

4、查找当前系统上没有属或属组,且最近一周内曾被访问过的文件或目录;

5、查找/etc目录下大于1M且类型为普通文件的所有文件;

6、查找/etc目录下所有用户都没有写权限的文件;

7、查找/etc目录至少有一类用户没有执行权限的文件;

~]#find /etc -not -perm -111 -type f -ls

8、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的所有文件;

时间: 2024-10-12 22:24:59

Linux文件查找工具之find(详解)的相关文章

Protobuf 文件生成工具 Prototool 命令详解

Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言包的生成. 详情参考Github: https://github.com/uber/prototool docker 方式使用 prototool 工具 使用方式 // prototool 的使用 docker run --rm -v $(pwd):/work "uber/prototool&quo

【linux_笔记】Linux_文件查找(find)详解&&特殊权限

学习资源来自:www.magedu.com 学习记录过程中难免出现错误,如有发现,还望大神们指出. 示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行.示例仅供参考(练习题在附录). 文件查找: locate(不常用):非实时,模糊匹配,根据全系统文件数据库进行查找,速度快:# updatedb, 手动生成文件数据库(非常耗时) find:实时,精确,支持众多查找标准,遍历指定目录中的所有文件完成查找,速度慢: 命令格式:find 查找路径 查找标准

Linux文件查找工具之find “大宝剑”

一.文件查找工具常用软件 locate: locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库. find:     find命令用来在指定目录下查找文件,通过遍历指定的

文本查找工具 find命令详解

本文旨在学习find命令常用用法 find命令语法 find [option] [查找路径] [查找条件][处理动作] 查找路径:指定具体目标路径:默认为当前目录. 查找条件:指定的查找标准,可以是文件名.大小.类型.权限等:默认会找出指                   定路径下的所有文件. 处理动作:对符合条件的文件做操作,默认输出至屏幕 find查找条件详解 根据文件名和inode查找: -name <文件名称>:支持使用glob *, ?, [], [^] -iname <文件

linux文件查找工具 -- find

简述: linux中find命令是一种强大的实时查找工具,它通过用户给出的路径,在该路径下的文件系统中进行文件查找.因此在遍历一个较大的文件系统时会比较花费时间,而且find命令占用资源也是比较大的,所以它的工作特点是,查找的速度略慢,但是可以实现精确查找和实时查找.由于用户权限的问题,可能只搜索用户具备读取和执行权限的目录.由于find命令能力很强大所以它的选项也有很多. find命令用法: find命令格式: find [选项] [查找起始路径] [查找条件] [处理动作] find [-H

文件查找及find命令详解

find 1.文件查找: 在文件系统上查找符合条件的文件的过程: 2.文件查找:locate, find locate: 非实时查找工具:依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务):手动更新此数据库(updatedb):查找速度快:模糊查找: find:实时查找:查找速度略慢:精确查找: 3.find命令使用方法: find [OPTION]... [查找路径] [查找条件] [处理动作] 查找路径:默认为当前路径: 查找条件:指定的查找标准,可以根据文件名.大小.

Linux 包管理工具 pip 使用详解

1. pip install 安装软件 [[email protected] ~]$ pip install somepackage [...] Successfully installed somepackage 参数:--upgrade 升级某包 2. pip show 查看已安装的软件(以matplotlib为例子) [[email protected] ~]$ pip show matplotlib --- Metadata-Version: 1.1 Name: matplotlib V

Linux 高压缩率工具 XZ 压缩详解

目录 一.XZ 基础信息 二.安装 三.详解 3.1.常用的参数 3.2. 常用命令 四.扩展 4.1.unxz 4.2.xzcat 4.3.lzma 4.4.unlzma 4.5.lzcat 一.XZ 基础信息 XZ 压缩比比较高,在这里没有进行详细对比. 官网链接: https://tukaani.org/xz/ 官网介绍到: 压缩后的文件大小 gzip 小30%,比bzip2小15%. 我测试 一个 112M 的文件,xz 压缩完后 4.5M, gz 压缩完后 16M, biz2 缩完后7

Linux 包管理工具之RPM详解

讲到包管理工具,先来了解下应用程序接口 (API)与应用程序二进制接口 (ABI). API: 编程接口 Application Program Interface 换句话说也就是你编写"应用程序"时候调用的函数之类的东西.对于内核来说,它的"应用程序"有两种:一种是在它之上的,用户空间的真正的应用程序,内核给它们提供的是系统调用这种接口,比如 read(2),write(2):另一种就是内核模块了,它们和内核处于同一层,内核给它们提供的是导出的内核函数,比如 km