Linux文件搜索

news/2024/9/19 14:43:44/文章来源:https://www.cnblogs.com/coder-shane/p/18420544

推荐使用顺序:

whereis \(\rightarrow\) locate \(\rightarrow\) find

可执行文件查找

查找PATH目录下的可执行文件,常常是命令

which [-a] command

# 示例
which ls # ls命令的位置,但只打印第一个被找到符合要求的指令which -a ls # 打印出PATH目录下所有匹配的命令位置

文件查找

  1. whereis:特定目录中,查找文件。一般用于查找二进制文件、源代码文件和manual手册等系统级别的文件。速度快。
# 语法
whereis [-option] fileName
# 参数介绍
-l:查找的主要目录
-b:只查找二进制文件
-m:只查找在说明文档manual路径下的文件
-s:只查找source来源文件
-u: 查找不在上述三个类别的其他特殊文件

示例:

whereis -l
# 输出太长,部分结果
bin: /usr/bin
bin: /usr/sbin
bin: /usr/lib/x86_64-linux-gnu
...
man: /usr/share/man/man6
man: /usr/share/man/man1
man: /usr/share/man/man7
...
src: /usr/src/linux-headers-6.5.0-45-generic
src: /usr/src/linux-headers-6.8.0-40-generic
src: /usr/src/linux-hwe-6.5-headers-6.5.0-45whereis passwd # 全部文件whereis -m passwd # 在manual手册中的文件
  1. locate:一般文件查找的首选方式

    • 速度快,创建文件数据库,而不是直接读取硬盘
    • 无法查找到最新文件。数据库每天自动更新,更新前的新文件无法被查找到。可sudo updatedb手动更新数据库,可能花费几分钟
    • 查找功能不如find强大,不过日常查找够用了

有可能没有安装,可通过sudo apt install mlocate进行安装。

# 语法
locate [-option] keyword # 只需要关键词就可以了,不需要全称
locate [-option] keyword | less # 有可能输出很多,可用less、more进行分页
# 参数介绍
-i:--ignore-case,常见参数,忽略大小写
-c:不输出文件名,而是输出找到的文件数量
-l:控制输出的行数,例如-l 5 输出5行
-S:输出locate所使用的数据库文件的相关信息
-r:后接正则表达式

示例:

locate passwd
# 为了看出差别,改为输出结果数量
locate -c passwd # 214locate -ic passwd # 214locate -rc passwd* # 895locate -l 5 passwd
# /etc/passwd
# /etc/passwd-
# /etc/pam.d/chpasswd
# /etc/pam.d/passwd
# /etc/security/opasswd
  1. find:非常强大的查找方法,可以支持多种方式进行查找,如时间、权限、名称等

    • 速度慢,费硬盘。每次都在硬盘中进行查找,而不是在数据库中进行查找。
    • 查找方式多
    # 查找方式过多,以下仅展示使用过的方式。若之后用到新的方式,会对其进行补充
    # 基础查找
    find PATH -name fileNamePATH:查找某路径下的文件,如/,查找根目录下的文件
    fileName:文件名称,支持正则表达式。使用正则表达式的时候,需要加引号,如"*passwd*"# 额外操作
    find PATH -name fileName -exec command {} \; # 查找后,接着执行其他命令。\;对分号进行转义-exec:执行命令,直到\;
    {}:表示find查找的结果,类似于变量。或者类似于python中的print("{}".format(value))
    

参考文献

  • 《鸟哥的Linux私房菜:基础学习篇 第四版》

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

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

相关文章

MindSearch 快速部署

基础任务(完成此任务即完成闯关)按照教程,将 MindSearch 部署到 HuggingFace 并美化 Gradio 的界面,并提供截图和 Hugging Face 的Space的链接。MindSearch 部署到Github Codespace 和 Hugging Face Space 和原有的CPU版本相比区别是把internstudio换成了github codespace。…

小程序隐私合规自查指南

一 背景:小程序作为一种轻量级应用,广泛应用于各大互联网平台。工信部通报2022年第5批侵害用户权益名单中首次出现8款违规小程序。各监管单位对“小程序”违规收集个人信息监控手段和监控力度不断加强。 工信部APP违法违规通报 上海市委网信办查处违规小程序二、小程序隐私合…

Jmeter的简单使用一:http请求

1、创建线程组setUp和tearDown线程组类似测试用例的测试开始之前执行某些初始化操作,如环境准备、数据库连接和释放数据库连接2、设置线程组Ramp-Up时间(以秒为单位)是指从开始到所有线程都达到活动状态的时间。例如,如果你设置了10个线程,并且Ramp-Up时间为20秒,那么JMe…

Flags

Flags是位字段的序列,当其中任何一个位不为零且广播可连接时广播包中应包含flags. 否则,flags可以被忽略。flags只能包含在广播包中,扫描响应包中不能包含flags。flags的作用是在广播包中加入如下标志:有限可发现模式;一般可发现模式;不支持BR/EDR;设备同时支持LE和BR/E…

Oracle 19c OCP 认证考试 082 题库(第23题)- 2024年修正版

【优技教育】Oracle 19c OCP 082题库(Q 23题)- 2024年修正版 考试科目:1Z0-082 考试题量:90 通过分数:60% 考试时间:150min 本文为(CUUG 原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。 原文地址:http://www.cuug.com/index.php?s=/home/article/deta…

windows7遇到不兼容如何解决

概述: 低版本的Windows缺乏一些高版本中所新增的系统接口,而VxKex可以为程序提供这些缺失的接口从而使其正常运行 当然VxKex不仅可以用于lucky也可以使其他一些最低要求为win10的程序在win7上运行起来 详情见其github项目地址 不过目前对游戏的效果不佳 国内加速下载下载:http…

一文搞定WeakHashMapE0

写在前面 在缓存场景下,由于内存是有限的,不能缓存所有对象,因此就需要一定的删除机制,淘汰掉一些对象。这个时候可能很快就想到了各种Cache数据过期策略,目前也有一些优秀的包提供了功能丰富的Cache,比如Google的Guava Cache,它支持数据定期过期、LRU、LFU等策略,但它…

windows7不支持一些程序的运行,如何解决

低版本的Windows缺乏一些高版本中所新增的系统接口,而VxKex可以为程序提供这些缺失的接口从而使其正常运行 当然VxKex不仅可以用于lucky也可以使其他一些最低要求为win10的程序在win7上运行起来 详情见其github项目地址 不过目前对游戏的效果不佳 国内加速下载下载:https://da…

MBR4045PT-ASEMI低Low VF肖特基MBR4045PT

MBR4045PT-ASEMI低Low VF肖特基MBR4045PT编辑:ll MBR4045PT-ASEMI低Low VF肖特基MBR4045PT 型号:MBR4045PT 品牌:ASEMI 封装:TO-247 安装方式:插件 批号:最新 恢复时间:35ns 最大平均正向电流(IF):40A 最大循环峰值反向电压(VRRM):45V 最大正向电压(VF):0.75V~…

快速比较两个数据库所有表的字段是否一致

背景 在开发时,常常会有开发环境,测试环境,生产环境。当开发环境中的数据库结构发生变化时,往往需要同步到测试环境和生产环境,但是有时候会忘记同步了。那么,如何快速判断两个数据库的所有表字段是否一致呢? 需要工具:navicat(或类似数据库工具),Beyond Comapre(或…

Hadoop(二十)Yarn工作原理

Yarn资源调度器Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序一、基础架构YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成二、Y…

springcloud负载均衡组件ribbon使用

一、微服务负载均衡ribbon策略如下: 1、线性轮询策略: RoundRibbonRule 2、重试策略:RetryRule 3、加权响应时间策略:WeightedResponseTimeRule 4、随机策略:RandomRule 5、最空闲策略:BestAvailableRule 6、区域感知轮询策略:ZoneAvoidanceRule(默认) 每个策略对应什…