Linux文件查找之find详解

一、简介

文件查找:在文件系统上查找符合条件的文件。

实现工具:find,locate,which,whereis

实现方式:whereis和locate是通过数据库查找文件,which是通过”PATH”环境变量规定的路径查找文件,find则是通过指定路径下遍历文件系统。

find的工作特性

实时查找工具,遍历指定起始路径下文件系统层级结构完成文件查找。

工作特性:精确查找,速度略慢,实时查找

二、find命令具体用法

1、find命令

# NAME  find - search for files in a directory hierarchy

SYNOPSIS  find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

用法:find 选项 [查找起始路径][查找条件][处理动作]

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

查找条件:根据文件名、大小、类型、从属关系、权限等查找标准进行;默认找出指定路径下的所有文件;

处理动作:对符合查找条件的文件做出的操作;默认为输出至标准输出;

查找条件:

表达式:选项和测试

测试:

根据文件名查找:

name “pattern” :支持glob风格的通配符;

-iname “pattern”:不区分大小写;

-regex pattern:基于正则表达式模式查找文件,匹配是整个路径,而非其名;不常用。

根据文件从属关系查找:

-user username:根据用户属性指定用户的文件;

-group GRPNAME:指定所有用户组的文件;

-uid UID:用户指定的UID的所有文件;

-gid GID :用户组指定的GID的所有文件;

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

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

根据文件的类型查找:

-type TYPE:

f: 普通文件

d: 目录文件

l:符号链接文件

b:块设备 文件

c:字符设备文件

p:管道文件

s:套接字文件

根据文件的大小查找:

-size[+][-]#unit

常用单位:k,M,G

#UNIT:(#-1,#]  -#UNIT:[0,#-1] +#UNIT:(#,oo)

根据时间戳查找:

以“天”为单位:

-atime #:(#-1,#] 某天访问  表示为#天之前的“一天之内”访问过的文件

-atime  -#:(#,0] 某天内

-atime + #:(oo,#-1] 多于某天

-ctime   change  修改:文件内容;用法与 -atime 类似;

-mtime   modification 修改:用户属性、用户组属性、文件名、;

用法与 -atime 类似;

以“分钟”为单位 :

-amin -cmin -mmin  用法与上面类似;

根据权限来查找:

-perm[/][-]mode

mode:精确权限匹配

/mode:任何一类用户的权限的任何一位符合条件即满足9位权限的或关系

-mode:任何一类用户的权限的任何一位同时都要符合条件即满足9位权限的与关系

组合测试:与:-a , 不加连接符默认组合逻辑与   或:-o       非:-not,!

处理动作:

-print  :输出至标准输出

-ls    :类似 “ls-l”

-delete  :删除查找到的文件

-fls     /path/to/somefile

-ok COMMAND {}\; :对查找到文件,等用户确认

-exec COMMAND {}\; :由命令执行更改。

三、练习

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

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

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

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

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

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

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

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

四、总结

1、组合测试需注意:-a:组合逻辑与(默认);-o:组合逻辑或;-not、!:组合逻辑非。

2、文件大小、时间戳用法比较特别

3、权限查找易混淆:/mode:相当于9位权限的逻辑或关系;-mode:9位权限的逻辑与的关系。

时间: 2024-12-20 07:28:25

Linux文件查找之find详解的相关文章

Linux文件查找命令 find 详解

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

Linux文件或目录权限详解

版权声明: ########################################################################### 本文的所有内容均来自作者刘春凯的学习总结,未经本人许可,禁止私自转发及使用. QQ:1151887353 E-mail:[email protected] [email protected] ########################################################################

linux下find(文件查找)命令的详解

文件查找命令locate和find详解 locate 配合数据库缓存,快速查看文件位置,非实时查找( 数据库查找) find 实际搜寻硬盘查询文件名称 ,实时查找 locate简介 locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在

linux之文件查找find grep详解,以及压缩归档

.find linux里的实时查找工具,通过制定路径完成文件查找. find[options]...[查找路径] [查找条件] [处理动作] 查找路径:查找的位置,默认是当前文件夹. 查找条件:指定查找的标准,文件名,大小,类型,日期等. 处理动作:对符合条件的文件做什么类型操作,默认是输出. 查找条件 根据文件名查找 -name 指定名称,可以使用正则 find /etc -name *.conf -maxdepth 2 -iname 忽略大小写 -links n 引用磁盘次数为n的文件 fi

Linux文件和目录权限详解

一.Linux文件和目录权限管理 1.文件权限说明: (1)r:表示具有读取文件内容的权限: (2)w:表示具有新增,修改文件内容的权限: (3)x:表示具有执行文件的权限,同时需要有r权限: 2.目录权限说明: (1)r:表示具有浏览目录下有哪些文件的权限,必须同时用x权限才可以: (2)w:表示具有新增.删除.移动目录内容文件的权限,同时需要有x权限: (3)x:表示具有进入目录的权限: 3.权限获取顺序 先看用户是不是文件所有者,再看是不是所属组,最后看是不是其他用户,如果是其中一个,就有

linux文件编辑VI命令详解

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它.Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻. 1.vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line m

Linux文件属性之Linux文件删除重要原理详解

Linux下文件删除的原理 只要dongdaxiafile(源文件).服务进程.dongdaxiaflie_hard_link(硬链接文件)三个中的任意一个存在文件不会被删除. 原文地址:https://www.cnblogs.com/dongxu2019/p/11461293.html

Linux文件命令-cat命令详解

概述:查看文件内容,连接文件,重定向输出到文件 1.查看整个文件 2.cat > filename 创建文件 3.合并输出到文件 1.查看文件(单个或者多个) cat demo.txt 2.创建文件文件(EOF是起止符可以随便起) cat >abc.txt <<EOF > good luck > good dog > good > EOF cat abc.txt good luck good dog good 3.合并输出到文件 #创建文件 cat1.txt

Linux文件命令-chmod命令详解

chmod命令:改变文件或目录的存取权限 #权限代号 -r 文件被读取 4 -w 文件被写入 2 -x 文件被执行 1 #权限范围 -u 文件所有者 -g 文件所有者所在组 -o 其他 -a 全部 #创建文件 touch demo1.txt #显示创建的文件 ls -l demo1.txt 执行结果 #-rw-rw-r-- 1 dajie dajie 0 9月 26 17:09 demo1.txt#文件属主(u) 增加执行权限:与文件属主同组用户(g) 增加执行权限:其他用户(o) 增加执行权限