linux文件查找--locate和find命令详解

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

文件查找:1.非实时查找(数据库查找):locate2.实时查找: find

应用:生产环境中查找到系统中占用磁盘空间较大且时间比较久的大日志文件,对这个较大的日志文件做处理(删除移走等),防止它占用更多的磁盘空间。

文章目录

  • locate概述
    • 安装mlocate
    • locate格式
    • locate特点
  • find概述
    • find特点
    • 指定搜索目录层级
    • 对每个目录先处理目录内的文件,再处理目录本身
    • 文件名和inode查找
    • 属主、属组查找
    • 文件类型查找
    • 空文件或目录查找
    • 组合条件
    • 排除目录
    • 文件大小查找
      • find -size [+|-]
    • 时间戳查找
      • find ./ -ctime -5
    • 处理动作
      • -print
      • -delete
      • -fls file
      • -ok COMMAND {} \;
      • -exec COMMAND {} \;
  • 参数替换xargs
    • 批量创建和删除用户
    • 查找有特殊权限的文件,并排序
    • 并发执行多个进程

locate概述

locate概述1.locate查询依赖于系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db2.索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库3.索引构建过程需要遍历整个根文件系统,很消耗资源4.locate和updatedb命令来自于mlocate包

locate可以快速定位文件的位置,它的搜索速度非常快。无论文件目录层级有多深,基本上一回车就能立即找到。

为什么locate的查找速度这么快?
locate事先已经把所有磁盘文件的信息建立在一个索引数据库里“/var/lib/mlocate/mlocate.db”,这个索引数据库已经存放了文件的列表和路径。
在这里插入图片描述
应用:tomcat的catalina.out日志会打印很多内容,占据了大量的磁盘空间。现在需要快速找到这个日志文件,将其清理或移走。
在这里插入图片描述
上图是公司测试环境的catalina.out日志文件,短短几天就从0K打印了109M的内容了,之前我找这个日志文件都是一级一级目录的去cd,这样速度很慢。使用了locate后,命令后面直接跟文件名,一回车就找到了。

locate的缺点:mlocate.db数据库不是实时更新的,如果新增了一个文件,则需要使用“updatedb”更新“mlocate.db”数据库才可以找到新增的文件。也就是mlocate.db会有一定的滞后性。

安装mlocate

在这里插入图片描述
安装完mlocate包后,就可以执行updatedb了
在这里插入图片描述

locate格式

格式:locate [OPTION]... [PATTERN]...常用选项-i     不区分大小写的搜索-n  N  只列举前N个匹配项目-r     使用基本正则表达式

范例:

#搜索名称或路径中包含"“conf"的文件
locate conf#使用Regex来搜索以".conf"结尾的文件
locate -r '\.conf$'

在这里插入图片描述

locate特点

locate特点1.查找速度快2.模糊查找3.非实时查找(滞后性)4.搜索的是文件的全路径,不仅仅是文件名5.可能只搜索到用户具备读取和执行权限的目录6.适合查找不经常变更的文件,如系统配置文件,日志文件等

find概述

find是实时查找工具,通过遍历指定路径完成文件查找。

find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode 号等来搜索文件。但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过大的搜索范围。

find特点

find工作特点1.查找速度略慢(在磁盘上挨个的找)2.精准查找3.实时查找4.查找条件丰富5.可能只搜索用户具备读取和执行权限的目录

格式

find [OPTION]...[查找路径][查找条件][处理动作]
find 命令的基本信息如下:命令名称:find。英文原意:search for files in a directory hierarchy.所在路径:/bin/find。执行权限:所有用户。功能描述:在目录中查找文件。查找路径: 指定具体目标路径; 默认为当前目录查找条件: 指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件处理动作: 对符合条件的文件做操作,默认输出至屏幕

指定搜索目录层级

-maxdepth level  最大搜索目录深度,指定目录下的文件为第1级
-mindepth level  最小搜索目录深度

f范例:查找/etc目录下的最深2级最浅2级目录

find /etc -maxdepth 2 -mindepth 2
#因为是以/etc为目标,所以/etc下的dnf是第一级目录,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对每个目录先处理目录内的文件,再处理目录本身

find /data/test/ -depth

在这里插入图片描述
在这里插入图片描述

文件名和inode查找

-name "文件名称"        支持使用glob,如:*, ?, [], [^], 通配符要加双引号引起来
-iname "文件名称"       不区分字母大小写
-inum n                按inode号查找
-samefile name         相同inode号的文件
-links n               链接数为n的文件
-regex "“PATTERN""     以PATTERN匹配整个文件路径,而非文件名称

在这里插入图片描述
使用通配符时,一定要使用双引号。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按inode号查找
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
find / -samefile
在这里插入图片描述
正则表达式搜索,以conf结尾的文件
在这里插入图片描述

属主、属组查找

-user USERNAME     查找属主为指定用户(UID)的文件
-group GRPNAME     查找属组为指定组(GID)的文件
-uid UserID        查找属主为指定的UID号的文件
-gid GroupID       查找属组为指定的GID号的文件
-nouser            查找没有属主的文件
-nogroup           查找没有属组的文件

在这里插入图片描述

文件类型查找

-type TYPETYPE可以是以下形式:
f: 普通文件
d: 目录文件
l: 符号链接文件
s: 套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件

范例:查找/home下的普通文件
在这里插入图片描述
查找/home下的目录
在这里插入图片描述
在这里插入图片描述

空文件或目录查找

-empty

在这里插入图片描述

组合条件

与: -a , 默认多个条件是与关系,所以可以省略-a
或: -o
非: -not !

范例:查看/etc/下的目录或者链接文件
在这里插入图片描述
在这里插入图片描述

找出/tmp目录下,属主不是root,且文件名不以f开头的文件
find /tmp \( -not -user root -a -not -name 'f*' \) -ls
find /tmp -not \( -user root -o -name 'f*' \) -ls

排除目录

prune: v. 修剪,修整;删除,削减

查找/etc/下,除/etc/security目录的其它所有.conf后缀的文件
find /etc -path '/etc/security' -a -prune -o -name "*.conf"查找/etc/下,除/etc/security和/etc/systemd, /etc/dbus-1三个目录的所有.conf后缀的文件
find /etc \( -path "/etc/security" -o -path "/etc/systemd" -o -path "/etc/dbus-1" \) -a -prune -o -name "*.conf"排除/proc和/sys目录
find / \( -path "/sys" -o -path "/proc” \) -a -prune -o -type f -a -mmin -1

文件大小查找

-size [+|-]#UNIT       常用单位:k,M,G,c (byte,注意大小写敏感
#UNIT:                 表示(#-1,#],   如:6k 表示(5k,6k]
-#UNIT                 表示[O,#-1],   如:-6k 表示[O,5k]
+#UNIT                 表示(#, ∞) ,   如:+6k 表示(6k, ∞)

find -size [+|-]

常用单位:k,m,G,c(byte) ,注意大小写敏感
应用:系统里有一个大约210M的catalina.out的日志文件
在这里插入图片描述
在这里插入图片描述

时间戳查找

linux下,一个文件有三种时间:1.访问时间:atime  对文件进行一次读操作,它的访问时间就会改变,cat、more等操作。2.修改时间:mtime  文件的内容被最后一次修改的时间。3.状态时间:ctime  文件的状态被改变的时候,状态时间就会随之改变。
find -atime [+|-]num
num  表示[num,num+1)
+num 表示[num+1,∞]
-num 表示[0,num)以“分钟”为单位
-amin
-mmin
-cmin

find ./ -ctime -5

在这里插入图片描述

处理动作

-print:  默认的处理动作,显示至屏幕
-ls:     类似于对查找到的文件执行“ls -dils”命令格式输出
-fls file: 查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete:    删除查找到的文件,慎用!
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身
备份配置文件,添加.orig这个扩展名
find -name ".conf" -exec cp {} {}.orig  \;提示删除存在时间超过3天以上的joe的临时文件
find / tmp -ctime +3 -user joe -ok rm {} \;在主目录中寻找可被其它用户写入的文件
find ~ -perm -002 -exec chmod o-w {} \;查找/data下的权限为644,后缀为sh的普通文件,增加执行权限
find /data -type f -perm 644 -name "*.sh" -exec chmod 755 {} \;

-print

在这里插入图片描述

-delete

找到文件,将之删除
在这里插入图片描述

-fls file

在这里插入图片描述

-ok COMMAND {} ;

交互式的方式
在这里插入图片描述

-exec COMMAND {} ;

非交互式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参数替换xargs

由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs可以读入stdin的数据,并且以空格符或回车符将stdin的数据分隔成为参数

另外,许多命令不能接受过多参数,命令执行可能会失败,xargs可以解决

注意:文件名或者是其他意义的名词内含有空格符的情况

find经常和xargs命令进行组合,形式如下:

find | xargs COMMAND

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

find /data/test -name "*.txt" |xargs ls -Sl

在这里插入图片描述

批量创建和删除用户

echo user{1..10} |xargs -n1 useradd
echo user{1..100} |xargs -n1 userdel -r

查找有特殊权限的文件,并排序

find /bin/ -perm /7000 | xargs ls -Sl 
#此命令和上面有何区别?
find /bin/ -perm -7000 | xargs ls -Sl

在这里插入图片描述
在这里插入图片描述

以字符nul分隔(xargs默认使用空格做分隔符,如果有的文件就是有空间的文件名,那就会报错)

find -type f -name "*.txt" -print0 | xargs -0 rm

并发执行多个进程

seq 100 |xargs -i -P10 wget -P / data  http://10.0.0.8/{}.html

并行下载bilibi7i视频

yum -y install python3-pip 
pip3 install you-get
seq 60 | xargs -i -P3 you-get https://www.bilibili.com/video/Bv14K411w7UF?p={}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/400349.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何判断监控设备是否支持语音对讲

目录 一、大华摄像机 二、海康摄像机 三、宇视摄像机 一、大华摄像机 注意:大华摄像机支持跨网语音对讲,即设备和服务器可以不在同一网络内,大华设备的语音通道填写:34020000001370000001 配置接入示例: 音频输入…

vue3重构一款仿饿了没APP实战项目

最近重构了一款比较流行的app项目,采用的是vue3做的h5项目,细节知识点很多,滚动,动画,数据通信,状态缓存等,想要学习交流的小伙伴赶紧行动起来。 图1 图2 图1 图2 图3 图4 图5 图5

若依框架中的mybatis依赖在哪里?

对于刚刚接触若依框架的朋友,可能会比较懵逼,因为他可能在依赖文件中没有找到mybatis的依赖是在什么地方引入的,所以本章教程,就告诉你这个依赖是在什么地方引入的。 在ruoyi-common模块中的pom.xml 存在一个pagehelper-spring-boot-starter <!-- pagehelper 分页插件 -…

docker资源控制与数据卷

docker数据卷 容器和宿主机之间数据共享---------挂载卷------------容器内的目录和宿主机的目录进行挂载。实现数据文件共享。 容器的生命周期有限&#xff0c;一旦重启所有对容器内部文件数据修改以及保存的数据都会被初始化&#xff0c;为了防止数据的丢失&#xff0c;重要…

【大模型系列篇】Transformers综述--邱锡鹏

论文标题&#xff1a;A Survey of Transformers 论文作者&#xff1a;Tianyang Lin, Yuxin Wang, Xiangyang Liu, Xipeng Qiu 论文链接&#xff1a;https://arxiv.org/abs/2106.04554 Transformer 在许多人工智能领域&#xff08;如自然语言处理、计算机视觉和音频处理&#…

力扣热题100_二叉树_230_二叉搜索树中第K小的元素

文章目录 题目链接解题思路解题代码 题目链接 230. 二叉搜索树中第K小的元素 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 小的元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a…

深入学习零拷贝

在学习中遇到了一个问题就是什么是零拷贝&#xff0c;因此学习之后以此来记录一下。 零拷贝、直接I/O、异步I/O等&#xff0c;优化的目的就是为了提高系统的吞吐量&#xff0c;减少访问磁盘次数。访问磁盘的速度会比读写内存会慢十倍以上。因此就需要提高它的读写速度。 什么…

视频融合项目中的平台抉择:6大关键要素助力精准选型

随着安防监控系统行业的快速发展&#xff0c;视频融合项目逐渐成为城市治理、企业管理及智能建筑等领域的重要组成部分。视频融合平台作为视频数据整合、管理和分析的核心&#xff0c;其选择直接影响到项目的成功与否。 在当前智慧业务类项目的集成过程中&#xff0c;我们不仅…

【网络协议】网络劫持 - ARP/DNS欺骗篇

前言 网络劫持是一种网络攻击技术&#xff0c;攻击者通过拦截、篡改或重定向数据流量&#xff0c;控制用户的网络通信路径&#xff0c;干扰正常的网络服务。其方式可能包括DNS劫持、ARP欺骗和HTTP劫持等。通过这些手段&#xff0c;攻击者可以窃取敏感信息如个人身份数据和财务信…

【实现100个unity特效之20】用unity实现物品悬浮和发光像素粒子特效

最终效果 文章目录 最终效果新增飞升粒子效果光圈效果修改不同颜色完结 新增飞升粒子效果 效果 光圈效果 效果 修改不同颜色 完结 赠人玫瑰&#xff0c;手有余香&#xff01;如果文章内容对你有所帮助&#xff0c;请不要吝啬你的点赞评论和关注&#xff0c;你的每一次支持…

望获实时Linux与EtherCAT的硬实时解决方案

在追求极致实时性与可靠性的工业自动化领域&#xff0c;望获实时Linux以其卓越的实时性能和广泛的兼容性&#xff0c;正逐步成为工业控制领域的核心力量。结合EtherCAT这一高效通信协议&#xff0c;我们共同打造了一套创新的硬实时工业控制方案&#xff0c;旨在满足现代工业对快…

数学建模——评价决策类算法(层次分析法、Topsis)

一、层次分析法 概念原理 通过相互比较确定各准则对于目标的权重, 及各方案对于每一准则的权重&#xff0c;这些权重在人的思维过程中通常是定性的, 而在层次分析法中则要给出得到权重的定量方法. 将方案层对准则层的权重及准则层对目标层的权重进行综合, 最终确定方案层对目标…

6.mysql事务

MYSQL事务 1.事务简介2.事务操作2.1 方式一2.2 方式二 3.事务四大特性&#xff08;ACID&#xff09;4.并发事务问题5.事务隔离级别 1.事务简介 事务 是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有操作作为一个整体一起想系统提交或撤销操作…

不懂就问,猫咪一到夏天就疯狂掉毛?宠物毛发异味怎么处理?

相信很多新手铲屎官都有这样的疑问&#xff0c;随着气温升高&#xff0c;家里的猫孩子疯狂掉毛&#xff0c;还有愈演愈烈的趋势。不用担心&#xff0c;这是因为宠物到了换毛季。猫咪的换毛季一年两次&#xff0c;多集中在春天和秋天&#xff0c;但也有很多猫咪的掉毛期无限延长…

中小型企业可用的数据采集监控平台 为生产带来众多改变

中小型企业采用数据采集监控平台可以显著提升生产效率、优化生产流程、增强决策能力&#xff0c;并带来一系列积极的改变。 数据采集监控平台可提供从边缘感知设备到云端的数据采集、存储、分析、可视化等服务&#xff0c;实现生产工艺流程仿真、设备运行状态监控、数据报表、趋…

【无标题】Unity Asset Hunter 插件

Asset Hunter PRO是Unity的一款插件&#xff0c;用于分析工程内的资源使用情况&#xff0c;资源大小&#xff0c;分析资源依赖关系&#xff0c;可以用来清理项目中未使用的资源。尤其是项目较大时&#xff0c;删除没有使用的资源很有帮助。 对于项目UI图片修改次数过多时&…

C++ | list

前言 本篇博客讲解cSTL中的list &#x1f493; 个人主页&#xff1a;普通young man-CSDN博客 ⏩ 文章专栏&#xff1a;C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&…

FMR—Feature-metric Registration论文解读

目录 一、导言 二、先导知识 1、逆组合算法 三、相关工作 1、优化算法为主的配准工作 2、基于特征的点云配准 3、端到端学习的配准 四、FMR框架 1、Encoder模块 2、Decoder分支模块 3、特征指标配准分支模块 4、损失函数 五、数据集 1、ModelNet40 2、7Scene数据…

SpringBoot快速入门(自动创建)

目录 前言 步骤 1 创建项目 2 选择生成器springBoot 3 修改后&#xff0c;如图所示 4 点击下一步 5 点击Web----SpringWeb 6 点击创建 6.1 如果发生报错如: 6.2 替换合适版本&#xff0c;等待重新加载 7 添加contronller类 7.1 添加HelloController 类 8 ​​创建…

基于JAVA的医院管理住院系统研究与实现

点击下载源码 基于JAVA的医院管理住院系统研究与实现 摘 要 医院管理住院系统是一项集多类学科为一体的系统&#xff0c;其中包含医学、信息、计算机等学科&#xff0c;广泛的应用在当今欧美等发达国家&#xff0c;给治疗患者们提供了很大的便利。假如全面实现了这一系统&…