find命令详解(1)

find命令

  find作为一个文件查找命令,与locate不同的是,它是一个实时查找命令,而locate则依赖于事先建好的数据库。而数据库的建立又十分耗费系统资源;locate命令虽然在查找速度上优于find,但在工作应用时有可能不能查到短时间内新建或者改变的文件,故个人认为二者各有优劣,使用时依照情况的不同自己斟酌使用。

本文中部分为马哥Linux视频中的课程笔记,且虽然标题是find命令详解,但由于本人也处于初学阶段,知之尚浅,故不能保证所写文章能够详细叙述此命令精髓,望诸位前辈能够指出错误及不足。

find命令的工作模式

find命令是一个实时查找工具,它是通过遍历指定起始路径下的文件系统层级结构完成查找的;

例如,我们直接在当前用户目录下使用如下图(命令效果效果因人而异)

上图是本人的root目录的部分文件,可以看到find命令将当前路径下的所有文件路径全部了显示出来。


   find命令的用法

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

从刚刚的例子可以看出,find后的这四种元素都可省略

查找起始路径:指定具体的搜索目标文件的起始路径,如不指定,则默认指定命令执行时用户所在的路径为起始路径。

查找条件:指定查找的目标文件的限定条件,限定条件可以指定为文件名、文件大小、文件类型、文件的从属关系、文件的权限等,如不指定,则为指定的查找起始路径下的所有文件。

处理动作:对符合查找条件的文件做出相应的操作,例如,删除操作。默认输出至标准输出。

find命令查找条件详述:

按照文件名查找:

-name "pattern":pattern为要查找的文件名

-iname "pattern":与-name用法一样,只不过忽略大小写

上述两个命令支持glob风格的通配符,例如:

*,?,[],[^]

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

按照文件从属关系查找:

-user USERNAME:-user后指定用户名,查找属主为所键入的用户名的所有文件

-group GROUP:-group后为指定用户组,查找属组为所键入的用户组的所有文件

-uid UID:-uid后为指定的UID,查找属主为所键入的UID的所有文件

-gid GID:-gid后为指定的GID,查找属组为所键入的GID的所有文件

-nouser:顾名思义,此选项查找没有属主的文件

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

按照文件类型查找:

-type TYPE:

TYPE具体类型:

f:普通文件

d:目录文件

l:符号链接文件

b:块设备文件

c:字符设备文件

p:管道文件

s:套接字文件

匹配条件时也可以使用逻辑运算进行更加复杂一些的匹配

与:-a,默认组合逻辑;

或:-o or:

非:-not,!

按照时间戳查找:

以“天”为单位

-atime: [+|-]#,#为天数;

-mtime:

-ctime:

选项后直接跟天数#表示具体某一天,例如 -atime 7:含义为7天前的那一天被访问过的文件。

选项后跟+#表示在#天之前(不包含第#天)的所有时间,例如 -mtime +7:含义为在过去的7天之前(不包含第7天)被修改过的文件。

选项后跟-#表示在过去#天之内,例如:-ctime -7:含义为过去的7天之前改变文件状态的文件。

以“分钟”为单位:

          -amin:

-mmin:

-cmin:

因使用方法与以“天”为单位的使用方法相似,在此不进行赘述。

按照权限查找:

-perm [/|-]mode

mode:精确权限匹配;

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

例如:-perm /222:当前目录的所有文件中,文件的三段权限中至少有一段权限有写权限;

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

例如:-perm -111:当前目录的所有文件中,文件的三段权限都要有执行权限;

                            未完待续

时间: 2024-08-29 15:18:00

find命令详解(1)的相关文章

jar打包命令详解

:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是说,制作一个可执行的 JAR 文件包,就可以像.chm 文档一样双击运行了:而另一种回答,则是使用 JET 来进行编译.但是 JET 是要用钱买的,而且,据说 JET 也不是能把所有的 Java 程序都编译成执行文件,性能也要打些折扣.所以,使用制作可执行 JAR 文件包的方法就是最佳选择了,何况它还能保持 Java 的跨平台特性.先来看看什么是 JAR 文件包: 1. JAR 文件包 JAR 文件就是 Java Archi

Linux压缩与解压缩命令详解

简介:常用的压缩命令有gzip.bzip2.tar 提示:gzip与bzip2工具不可以对目录做打包压缩操作,gzip与bzip2解压都是用-d参数(decompress=uncompress) tar命令详解: 用法:tar 模式 [选项][路径]... 模式:    -c 创建打包文件 -delete -r --append -t --list内容 -x --extract 选项:    -C --directory -f 打包后的文件名称 -j bzip格式压缩 --remove-file

(转)Linux下PS命令详解

(转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不动态连续: (2) top:如果想对进程运行时间监控,应该用 top 命令: (3) kill 用于杀死进程或者给进程发送信号: (4) 查看文章最后的man手册,可以查看ps的每项输出的含义

Linux上的free命令详解

Linux上的free命令详解 转自: http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][1] = 24677460 FO[3][2] = 10321516 1          2          3    

Find命令详解

find命令详解 格式 find pathname -options [ -print -exec -ok ... ] 功能 在磁盘中查找文件,并作相应处理 参数 pathname         所查找的目录,可以是相对/绝对路径 options -print 将结果输出到标准输出 -exec 'command' {} \; 对结果执行该参数所给的shell命令 -ok 与-exec作用相同,不过需要用户确认是否执行命令 -name 按照文件名查找 -perm [+-]mode 按照文件权限查

iftop命令命令详解

iftop命令命令详解 作者:尹正杰 在Linux命令中有很多内置命令,和外置命令,但是内部命令的功能毕竟是有限的,比如ifconfig,它就不能看到网卡流量的 实时发送情况,尽管咱们知道可以用watch命令去查看网卡的发送接收流量的情况,但是还是不够细致,因为它仅仅能看到我们的 接受和发送的总流量,因此,我们今天来介绍一个比较好使的实施查看网络流量信息的软件---iftop,其实他的工作模式和top很像. 废话不多说~让我们直接进入正题吧: 1.想必大家都会在linux命令行上敲击ifconf

linux yum命令详解

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...]其中的[opti

Linux上命令的使用格式和基础命令详解

一.Linux上命令的使用格式 命令行提示符详解: 用户通过终端的命令行接口来控制操作系统,登陆后如下: [[email protected] ~]# root: 当前登录的用户 @:分隔符 localhost: 当前主机的主机名,非完整格式:此处的完整格式为:localhost.localdomain [[email protected] ~]# hostname localhost.localdomain ~:用户当前所在的目录(current directory),也称为工作目录(work

scp命令详解

先说下常用的情况: 两台机器IP分别为:A.104.238.161.75,B.43.224.34.73. 在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为:scp -r [email protected]:/home/lk /root. 具体过程为: [[email protected] ~]# scp -r [email protected]43.224.34.73:/home/lk /root [email protected]43.2

31个有用的系统管理员命令详解(linux)

在开始之前,你必须了解一下linux 基本知识: centos7目录结构.文件类型及权限.inode解析.信号 最常用的linux命令行快捷键.centos7 vi编辑器及环境变量的使用 Linux进程优先级及调度原理 1.Uptime 命令显示:运行时间.登陆用户数及1,5,15分钟间隔负载. # uptime 08:16:26 up 22 min,  1 user,  load average: 0.00, 0.03, 0.22 Uptime 命令仅有一个版本选项而且仅显示一天内的小时:分钟