Linux命令之find命令

article/2025/10/11 10:15:42

一、命令简介

  Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。find 命令有非常大的灵活性,可以向其指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录。此外,find 还支持对搜索到的结果进行多种类型的命令操作。

二、使用示例

1、查找指定文件

使用-name参数查找指定文件
[root@test1 apache-tomcat-9.0.44]# find . -name startup.sh
./bin/startup.sh

2、查找指定后缀文件

使用正则表达式通配符查找匹配的文件
[root@test1 apache-tomcat-9.0.44]# find . -name “*.sh”
./bin/catalina.sh
./bin/ciphers.sh
./bin/configtest.sh
./bin/daemon.sh
./bin/digest.sh
./bin/makebase.sh
./bin/setclasspath.sh
./bin/shutdown.sh
./bin/startup.sh
./bin/tool-wrapper.sh
./bin/version.sh

3、查找指定类型的文件

使用-type支持指定类型的文件
[root@test1 apache-tomcat-9.0.44]# find ./webapps/ -type d
./webapps/
./webapps/qiuhun
./webapps/qiuhun/renxi

4、查找最近修改过的文件

查找最近2天内有更新的文件
[root@test1 apache-tomcat-9.0.44]# find ./logs -mtime -2
./logs
./logs/catalina.out
./logs/catalina.2021-03-31.log
./logs/localhost.2021-03-31.log
./logs/manager.2021-03-31.log
./logs/host-manager.2021-03-31.log
./logs/localhost_access_log.2021-03-31.txt

5、查找指定目录深度下的文件

查找/var/log目录下最小深度为2的log文件
[root@test1 apache-tomcat-9.0.44]# find /var/log/ -mindepth 2 -name *.log
/var/log/audit/audit.log
/var/log/gdm/:0-greeter.log
/var/log/gdm/:0.log
/var/log/tuned/tuned.log
/var/log/anaconda/anaconda.log
/var/log/anaconda/X.log
/var/log/anaconda/program.log
/var/log/anaconda/packaging.log
/var/log/anaconda/storage.log
/var/log/anaconda/ifcfg.log
/var/log/anaconda/ks-script-oDrhPT.log
/var/log/anaconda/ks-script-ohL_89.log
/var/log/anaconda/journal.log
/var/log/vmware/rc.local.log

6、根据inode删除文件

首先通过ls -li查找inode
[root@test1 apache-tomcat-9.0.44]# ll -i
然后通过find -inum inode号 -delete指定文件,此方法对于删除上传到服务器后文件名乱码的文件非常有用
[root@test1 apache-tomcat-9.0.44]# find -inum 2663645 -delete
在这里插入图片描述

7、清除查找到的超过指定时间的日志文件

清除查找到的文件,删除前确认
[root@test1 apache-tomcat-9.0.44]# find ./logs/ -mtime +5 -ok rm {} ;
< rm … ./logs/catalina.2021-03-26.log > ? y
< rm … ./logs/localhost.2021-03-26.log > ? y
< rm … ./logs/manager.2021-03-26.log > ? y
< rm … ./logs/host-manager.2021-03-26.log > ? y
< rm … ./logs/localhost_access_log.2021-03-26.txt > ? y

8、查找当前目录下具有指定权限的文件并获取完整路径

使用perm参数查找指定权限的文件
[root@test1 apache-tomcat-9.0.44]# find /home/wuhs/apache-tomcat-9.0.44/bin -type f -perm 750 -exec ls -l {} \;
-rwxr-x— 1 wuhs wuhs 25294 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/catalina.sh
-rwxr-x— 1 wuhs wuhs 1997 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/ciphers.sh
-rwxr-x— 1 wuhs wuhs 1922 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/configtest.sh
-rwxr-x— 1 wuhs wuhs 9100 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/daemon.sh
-rwxr-x— 1 wuhs wuhs 1965 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/digest.sh
-rwxr-x— 1 wuhs wuhs 3382 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/makebase.sh
-rwxr-x— 1 wuhs wuhs 3708 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/setclasspath.sh
-rwxr-x— 1 wuhs wuhs 1902 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/shutdown.sh
-rwxr-x— 1 wuhs wuhs 1904 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/startup.sh
-rwxr-x— 1 wuhs wuhs 5540 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/tool-wrapper.sh
-rwxr-x— 1 wuhs wuhs 1908 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/version.sh

9、查找指定用户的文件

查找webapps目录下属主为wuhs用户的文件
[root@test1 apache-tomcat-9.0.44]# find ./webapps/ -user wuhs -type f -print
./webapps/qiuhun/说明.txt
./webapps/qiuhun/qiuhun.html
./webapps/qiuhun/renxi.mp3
./webapps/qiuhun/qiuhun.html.bak
./webapps/qiuhun/WebForm1.aspx.cs
./webapps/qiuhun/WebForm1.aspx
./webapps/qiuhun/WebForm1.aspx.designer.cs
./webapps/qiuhun/renxi/jscex-async.min.js
./webapps/qiuhun/renxi/jscex-jit.js
./webapps/qiuhun/renxi/jscex-builderbase.min.js
./webapps/qiuhun/renxi/jscex.min.js
./webapps/qiuhun/renxi/default.css
./webapps/qiuhun/renxi/love.js
./webapps/qiuhun/renxi/functions.js
./webapps/qiuhun/renxi/jscex-parser.js
./webapps/qiuhun/renxi/jscex-async-powerpack.min.js
./webapps/qiuhun/renxi/jquery.min.js
./webapps/qiuhun/index.html

10、查找指定大小的文件

查找超过1M的文件
[root@test1 apache-tomcat-9.0.44]# find . -size +1M -type f
./lib/catalina.jar
./lib/ecj-4.18.jar
./webapps/qiuhun/renxi.mp3

三、使用语法及参数说明

1、使用语法

usage:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
用法:find [路径] [表达式选项] [行动]

2、常用表达式选项参数说明

选项参数说明
-mount, -xdev只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n在过去 n 分钟内被读取过
-anewer file比文件 file 更晚被读取过的文件
-atime n在过去n天内被读取过的文件
-cmin n在过去 n 分钟内被修改过
-cnewer file比文件 file 更新的文件
-ctime n在过去n天内被修改过的文件
-empty空的文件-gid n or -group name
-ipath p, -path p路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name文件名称符合 name 的文件。iname 会忽略大小写
-size n文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type b/d/c/p/l/f查是块设备、目录、字符设备、管道、符号链接、普通文件
-perm按执行权限来查找
-user username按文件属主来查找
-group groupname按组来查找
-depth指定查找目录深度
-follow如果遇到符号链接文件,就跟踪链接所指的文件
-prune忽略某个目录
-maxdepth指定查找目录最大深度
-mindepth指定查找目录最小深度
-version查看版本
-help获取帮助

3、常用行动参数说明

参数参数说明
-delete删除查找到的文件
-exec command对查找到的文件执行command命令
-ok command执行命令前需要进行确认
-printf格式化输出

4、多条件组合参数

参数参数说明
-o是或者的意思
-a是而且的意思
-not是相反的意思

http://chatgpt.dhexx.cn/article/t9Nusnww.shtml

相关文章

Find命令的7种用法

Find对于技术面试&#xff0c;它也是一个热门话题。让我们看一道真题&#xff1a; 如果你的 Linux 服务器上有一个名为 logs 的目录&#xff0c;如何删除该目录下最后一次访问时间超过一年的日志文件呢&#xff1f; 这种情况很常见&#xff0c;但令人惊讶的是&#xff0c;并非…

find命令,详细

find命令&#xff0c;查找文件和目录 find查找命令是Linux系统中最重要和最常用的命令之一。查找用于根据与参数匹配的文件指定的条件来搜索和查找文件和目录列表的命令。查找可以在各种条件下使用&#xff0c;您可以通过权限&#xff0c;用户&#xff0c;组&#xff0c;文件类…

Linux常用命令——find命令大全

一、find命令常用功能 1、find命令的基本信息如下。 命令名称&#xff1a;find。英文原意&#xff1a;search for files in a directory hierarchy。所在路径&#xff1a;/bin/find。执行权限&#xff1a;所有用户。功能描述&#xff1a;在目录中搜索文件。 2、按照文件名搜…

linux内存管理系统

1. linux内存管理系统 1. 1 内存配置 vim .config 由上图可知&#xff0c;当前系统配置的内存资源为&#xff1a; 虚拟页大小4KiB 虚拟地址带宽48bit 物理地址带宽48bit 4级页表&#xff0c;pgd pud pmd pte 1.2 查看内存页的布局情况 make menuconfig利用qemu环境进行…

Linux内存管理详解

前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间&#xff0c;但是还是有很多问题不是很清楚&#xff0c;最近又花了一些时间复习了一下&#xff0c;在这里记录下自己的理解和对Linux中内存管理的一些看法和认识。 我比较喜欢搞清楚一个技术本身的发展历程…

深入理解Linux内存管理

1.1 内存管理的意义1.2 原始内存管理1.3 分段内存管理1.4 分页内存管理1.5 内存管理的目标1.6 Linux内存管理体系2.1 物理内存节点2.2 物理内存区域2.3 物理内存页面2.4 物理内存模型2.5 三级区划关系3.1 Buddy System 3.1.1 伙伴系统的内存来源3.1.2 伙伴系统的管理数据结构3.…

【linux kernel】linux内存管理 | 分配物理内存页面

文章目录 一、物理内存分配概述二、分配核心函数&#xff08;__alloc_pages_nodemask&#xff09;&#xff08;2-1&#xff09;重要函数1&#xff1a;&#xff08;get_page_from_freelist()&#xff09;&#xff08;2-2-1&#xff09;for_each_zone_zonelist_nodemask{} &#…

深度讲解Linux内存管理和Linux进程调度-打通任督二脉

《穆赫兰道》与《内陆帝国》 我在多年的工程生涯中发现很多工程师碰到一个共性的问题&#xff1a;Linux工程师很多&#xff0c;甚至有很多有多年工作经验&#xff0c;但是对一些Linux内存管理和linux进程管理关键概念的理解非常模糊&#xff0c;比如不理解CPU、内存资源等的真正…

Linux内存管理机制

在Linux中经常发现空闲内存很少&#xff0c;似乎所有的内存都被系统占用了&#xff0c;表面感觉是内存不够用了&#xff0c;其实不然。这是Linux内存管理的一个优秀特性&#xff0c;主要特点是&#xff0c;无论物理内存有多大&#xff0c;Linux 都将其充份利用&#xff0c;将一…

关于linux内存管理

Linux的内存管理主要分为两部分&#xff1a;物理地址到虚拟地址的映射&#xff0c;内核内存分配管理&#xff08;主要基于slab&#xff09;。 物理地址到虚拟地址之间的映射 1、概念 物理地址(physical address) 用于内存芯片级的单元寻址&#xff0c;与处理器和CPU连接的地址…

深入理解Linux内存管理-之-目录导航

日期内核版本架构作者GitHubCSDN2016-08-31Linux-4.7X86 & armgatiemeLinuxDeviceDriversLinux内存管理 1 内存描述 CSDNGitHubLinux内存描述之概述–Linux内存管理(一)01-description/01-memoryLinux内存描述之内存节点node–Linux内存管理(二)01-description/02-nodeLin…

Linux内存管理(下)

Linux内存管理(下) 物理内存管理&#xff08;页管理&#xff09; Linux内核管理物理内存是通过分页机制实现的&#xff0c;它将整个内存划分成无数4k(在i386体系结构中)大小页&#xff0c;从而分配和回收内存的基本单位便是内存页了。利用分页管理有助于灵活分配内存地址&…

Linux中的内存管理机制

Linux中的内存管理机制 ​ 程序在运行时所有的数据结构的分配都是在堆和栈上进行的&#xff0c;而堆和栈都是建立在内存之上。内存作为现代计算机运行的核心&#xff0c;CPU可以直接访问的通用存储只有内存和处理器内置的寄存器&#xff0c;所有的代码都需要装载到内存之后才能…

Linux - 内存管理

【1】前言 内存管理是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效&#xff0c;快速的分配&#xff0c;并且在适当的时候释放和回收内存资源。 内存管理是操作系统很重要的一部分。作为一个后端开发来说&#xff0c;了解操作系统是如何进行内存…

Linux的内存管理

Linux的内存管理 Linux的内存管理是一个非常复杂的过程&#xff0c;主要分成两个大的部分&#xff1a;内核的内存管理和进程虚拟内存。内核的内存管理是Linux内存管理的核心&#xff0c;所以我们先对内核的内存管理进行简介。 一、物理内存模型 物理内存模型主要分为两种&…

Linux内存管理(上)

Linux内存管理(上) 摘要&#xff1a;本章首先以应用程序开发者的角度审视Linux的进程内存管理&#xff0c;在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存地使用方法。力求从外自内、水到渠成地引导网友分析Linux地内存管理与使用。在本章最后我们给出一个内存映射…

【纯干货】Linux内存管理(最透彻的一篇)

摘要&#xff1a;本章首先以应用程序开发者的角度审视Linux的进程内存管理&#xff0c;在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后&#xff0c;我们给出一个内存映射的实例…

Linux内存管理方式

目录 前言 内存管理方式 分段式 分页式 段页式 虚拟地址如何映射到物理地址 缺页中断 内存交换 内存置换算法 前言 之前说过linux中的程序地址空间是使用的虚拟地址&#xff0c;虚拟地址和真实的物理地址有着某种特殊的映射关系&#xff08;MMU&#xff0c;全称Memory Ma…

一文讲透Linux内存管理

一、Linux内存管理概述 Linux内存管理是指对系统内存的分配、释放、映射、管理、交换、压缩等一系列操作的管理。在Linux中&#xff0c;内存被划分为多个区域&#xff0c;每个区域有不同的作用&#xff0c;包括内核空间、用户空间、缓存、交换分区等。Linux内存管理的目标是最…

Linux内存管理(一):内存管理概述

首先明确下面几个概念&#xff1a; 程序(Program)&#xff1a;一组指令的有序集合&#xff0c;是静态的实体。进程(Process)&#xff1a;执行程序后&#xff0c;操作系统将程序的可执行文件和它的相关依赖加载到内存中&#xff0c;得到的动态的实体称为进程。 程序和进程并不…