文件查找及具体实例

article/2025/10/6 0:51:39

一、简介

Which:命令查找

Find:文件查找,针对文件名

Locate:文件查找,依赖数据库

二、命令文件查找

1.找到某些命令文件的位置

Which ls
在这里插入图片描述

Whereis ls
在这里插入图片描述

三、文件查找find

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

find [option] [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径。默认为当前目录。
查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行。默认找出指定路径下的所有文件。
处理动作:对复合条件的文件做操作,默认输出至屏幕。

find /mnt -maxdepth 1
在这里插入图片描述
查找/mnt目录下的所有文件,不进入下一层。-maxdepth 最大深度,表示只进入路径下的前几层。

Find /mnt -maxdepth 2 -mindepth 2
在这里插入图片描述
查找/mnt目录下第二层目录下的所有文件。只在第二层目录下查找。-mindepth 最小深度。

Find /mnt -depth
在这里插入图片描述
先显示目录,再显示文件,默认查找显示结果,是先显示目录,再显示其下的文件。-depth可以先显示其下文件,再显示目录。

Find /mnt -name disk
在这里插入图片描述
在/mnt目录下,按照文件名disk1进行精确查找。
如果需要模糊查找,find /etc -name “pass”,表示查找/etc目录下包含pass字符的文件名。有些系统需要双引号才能正常使用通配符。

Find /usr/bin -iname “*.sh”
在这里插入图片描述
在/usr/bin目录下,查找.sh文件名结尾的文件。-iname,按照文件名查找,不区分大小写。

Find /etc -inum 107
在这里插入图片描述
在/etc目录下,查找107inode编号的文件。-inum,按照节点编号查找。

Find /usr/bin -samefile /bin/passwd
在这里插入图片描述
在/usr/bin目录下,查找和/bin/passwd这个文件相同inode编号的文件。
一般用于查找一个文件的硬链接文件。

Find /etc -link 5
在这里插入图片描述
查找在/etc目录下,链接数为5的文件。-links n,查找链接数。

Find /usr/bin/ -regex ‘.*.shKaTeX parse error: Can't use function '\.' in math mode at position 146: …则表达式,.*表示所有字符。 \̲.̲中\表示转义符,转义.的意思。…:$表示以什么结尾,这里是以sh结尾的意思。

Find /mnt -user root
在这里插入图片描述
查找在/mnt目录下所属者是root账户的文件。-user 指定所属者。

Find /mnt -group root
在这里插入图片描述
查找/etc目录下所属组是root组的文件。-group 指定所属组。

Find /mnt -uid 0
查找/etc目录下所属者的uid是0的文件。-uid 指定用户的uid。

Find /mnt -gid 0
查找/etc目录下所属组的gid是0的文件。-gid 指定所属组的gid。

Find /etc nouser
查找/etc目录下没有所属者的文件。

Find /etc/ nogroup
查找/etc目录下没有所属组的文件。

Find /etc/ -type TYPE
按照文件类型查找/etc目录下的文件。-type 按照文件类型查找。
f:普通文件,例:find / -type f
d:目录文件,例:find / -type d
l:符号链接文件,例:find / -type l
s:套接字文件,例:find / -type s
b:块设备文件,例:find / -type b
c:字符设备文件,例:find / -type c
p:管道文件,例:find / -type p

Find /etc -empty
在/data下面查找空文件。

Find /etc -type d -empty
在/etc下查找空目录。

Find /etc -path “/etc/sane.d” -a prune -o -name “*.conf”
查找etc下除去/etc/sane.d目录下的其余所有文件名尾缀是.conf结尾的文件
-path 路径,从这个路径中进行什么操作。-a 且,-prune 进行剪切,不显示。
-path “/etc/sane.d” -a -prune 选择路径/etc/sane.d目录并且进行剪切不显示。

组合条件:

与:-a
Find /etc -name “*.sh” -a -type f
在这里插入图片描述
查找/etc目录下文件名尾缀是.sh结尾的普通文件

或:-o
Find /etc -name “*.sh” -o -type f
查找/etc下文件名尾缀是.sh结尾的文件或者/etc下的f普通文件。

非:not,!
Find /etc ! -name “*.sh”
查找/etc下文件名不是.sh结尾的所有文件。

部分特殊例子:
Find /mnt -name “*.sh” -o -type f -ls
在这里插入图片描述
-ls的优先级大于-o。所以查询出来的是/data下的普通文件并且显示具体出来。

Find /etc ( -name “*.db” -a -type f ) -ls
将优先级用()括起来确认是-name -a -type,然后再进行-ls显示具体。/转义,否则系统不认为是()
在这里插入图片描述

find -not ( -user wang -name “*.txt” )
查找除了所属者是wang,并且尾缀是.txt的文件

德·摩根定律
(非A)或(非B)=非(A且B)
(非A)且(非B)=非(A或B)

四、文件查找locate

文件查找,本身是外部命令(type locate)。

locate在最小化安装中是没有的,需要安装包

locate [option] [pattern(模式)]

locate文件查找,依赖一个mlocate的数据库,是在mlocate的小数据库中进行查找。

注意:mlocate数据库不是像平时操作文件那样,随时添加一个文件,删除一个文件就立马更新mlocate数据库。它不会随时更新,不是立即更新。这就表示如果是新文件,用locate是无法立即找到的。如果新建了某个文件或者删除了某个文件需要它立即更新,使用updatedb。直接敲出来回车即可。updatedb。
mlocate数据库其实在Linux中是一个文件,这个文件存放在/var/lib/mlocate/mlocate.db。就是这个文件。而updatedb就是对这个文件进行更新。updatedb后可以查看到这个文件的更新时间就是当前。
locate命令因为是查找的mlocate数据库,所以这个命令更多的是用于查找相对稳定,固定不变的文件。并且locate搜索都是模糊搜索。

注意:用locate后如果有通配符,例如:locate “*.sh”,有些系统是需要用双引号引起来的,否则Linux就认为是在当前目录下查找所有的.sh文件.

Locate -i “*.SH”
查找所有.sh结尾的文件,不区分大小写,-i 表示不区分大小写。

locate -n 3 -i “*.SH”
查找所有.sh结尾的文件,不区分大小写并且显示前三个。-n 3 表示返回结果集的前三个。

locate -r “.\sh$”
查找所有.sh结尾的文件。-r后面跟基础正则表达式。

locate和find的区别:
locate是基于mlocate数据库去搜索的,所以速度很快,不耗费性能。但是mlocate数据库不是实时更新的,新文件是找不到的。所以更多的用于固定,稳定不变的文件查找。
find是基于指定路径,实时的去磁盘分区中去完成查找文件的操作。是会影响一定性能的。查找速度略慢。但是精确查找、实时查找,需要注意,find查找,只搜索用户具备读取和执行权限的目录。


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

相关文章

Linux命令之查找文件find

概述 find 命令可以在目录层次结构中搜索符合指定条件的文件或目录,并且可以它们执行指定的操作。而搜索条件可以是文件权限、文件类型、日期、大小等。 语法 该命令的语法如下: # find 命令从指定的起始目录开始,递归地搜索其各个子目录&…

MySql数据库主键外键与数据库设计

MySql数据库主键外键与数据库设计 首先要指出的: 列、字段、属性是一个概念 行、记录、元组是一个概念 MySQL数据库CONSTRAINT约束:非空约束,唯一约束,主键约束,外键约束 show create table table_name\G;可以查看已…

mysql外键

虽然阿里不推荐使用MySQL外键,但是我们的项目如果对数据的一致性不太敏感,外键还是非常好的!减少数据库的数据冗余。如果对数据一致性有着非常高的要求,如:使用事务,那么强烈建议该表及关联表不要使用外键&…

数据库外键理论及MySQL外键实现规定

文章目录 1. 关系数据库外键概念理论(大学时学习的概念)1.1 实体完整性1.2 ✅ 参照完整性1.3 用户定义完整性1.4 ✅ 参照完整性的SQL实现1.5 ✅ MySQL数据库操作示例1.6 ✅ neo4j中的关系和mysql的外键 2 MySQL中实现的规定2.1 基本概念2.2 ✅ 命名规则2…

数据库(外键及其约束理解)

一:首先是外键的定义 如果一个字段X在一张表(表一)中是主关键字,而在另外一张表(表二)中不是主关键字,则字段X称为表二的外键;换句话说如果关系模式R1中的某属性集不是自己的主键&am…

数据库的外键:主表与从表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言Mysql的外键是什么,有何用?代码演示总结 前言 提示:这里可以添加本文要记录的大概内容: 最近在学习数据库&…

【数据库】外键的作用

前言 说到外键,一般就会牵扯出约束。不谈约束,起始外键就是一个普通的字段(Column),起到一个关联的作用。 先把约束放一边,看看外键有哪些作用。 建立表中记录的一对一的关系 学生表: 手机表…

数据库之外键

外键约束(FOREIGN KEY)用来在两个表的数据之间建立连接,它可以是一列或者多列。一个表可以有一个或多个外键。 (1)外键定义:一张表中某一列的值使用的是另外一张表的主键值。这个列就被称为外键列。 &#…

数据库mysql表怎么设置外键_如何设置数据库中的外键

展开全部 创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只e69da5e887aa62616964757a686964616f31333365653739有主键没有外键时不行的。 建外键的前提是此外键必须是另外一个表的主键。建外键的步骤: 第一步、打开要建外键表的设计器,右击…

数据库表外键设置

http://blog.csdn.net/pplsunny/article/details/7747340 我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标…

数据库——外键的作用

我们用一个比较实际的例子来描述问题,并讲解外键作用: 当我们在网上购物的时候,我们有我们的帐号,还有我们所在不同地方的地址信息如公司,学校,家里,或者给亲戚朋友送个礼物,收货人…

mysql数据库添加外键的四种方式

文章目录 一、添加外键的四种方式二、文档下载 一、添加外键的四种方式 1、 建表时直接使用FOREIGN KEY,这种方式外键名称自动生成。如下图。 FOREIGN KEY (user_id) REFERENCES t_user(id)2、 建表时使用CONSTRAINT指定外键名称。如下图。 CONSTRAINT fk_studen…

彻底理解数据库外键

外键的定义 如果 公共关键字在一个关系中是 主关键字,那么这个 公共关键字被称为另一个关系的 外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外…

什么是数据库外键?

外键 Teacher_id就是student的外键 Teacher是主表,student是子表(从表) 外键就是一个表中的一个字段引用了另一个表中的主键,引用的表叫做子表,被引用的表叫做主表,外键是一种约束,描述的是表之…

数据库常用命令之外键(foreign key)多对多(总结,基础)

我是小白,刚接触MySQL不久,现阶段正在学习,为此在这里留下自己的学习笔记。如果有错误的地方还请大家见谅,评论或者私发我错误的地方哦,谢谢大家,嘿嘿~ 外键(foreign key) 引言&…

MySQL中的外键(foreign key)

阅读目录 前言一、外键作用及其限制条件1 外键的定义2 外键的作用3 外键创建限制 二、外键创建方法1 创建外键的语法2 举例(1)创建两张表(2)创建外键(3)查看表结构 三、验证外键作用1 先向主表中添加数据2 …

显示gsensor即时数据的apk 用gsensor来判断手机的静和动

即时显示gsensor的数据,可以在调试重力感应器驱动和测试手机性能时起到很好的作用。类似的,SensorEventListener还可以用在其他感应器的场合,比如光感应、地磁感应。这里用两种方式来完成读取并显示gsensor数据的功能,一种是activ…

老化测试Gsensor失败分析

在log中搜Gsensor可以看到如下: 在Y:\1\18045c1老化\bug127302c1_slog\last_log\2015-01-01-06-19-23\android\0-events-06-19-24.log中搜到如下: 行号 500 - 01-01 06:36:08.996 664 2050 I am_create_activity: [0,509924699,15,com.wingtech.runin…