Linux常用查找文件方法

article/2025/10/6 0:43:13

一、which命令

查找类型:二进制文件;
检索范围:PATH环境变量里面指定的路径中查找;
描述:快速返回某个指定命令的位置信息。
优点:查找速度快
缺点:仅支持二进制文件
例:
在这里插入图片描述

二、whereis命令

查找类型:二进制文件,man帮助文件,及源代码文件;
检索范围:/usr目录
描述: 快速返回某个指定命令的位置信息,及其man文件和源代码文件的位置信息(如果存在的话)。

也可以通过参数指定返回某一类查找结果:
-b: 仅查找二进制文件;
-m: 仅查找man帮助文件;
-s: 仅查找源代码文件;
优点:查找速度快
缺点:查找文件类型及范围均有限
例:
在这里插入图片描述

三、locate命令

查找类型:所有文件;
检索范围:locatedb数据库;
描述:locate是Linux系统提供的一种快速检索全局文件的系统命令,它并不是真的去检索所以系统目录,而是检索一个数据库文件locatedb(Ubuntu系置/var/cache/locate/locatedb),该数据库文件包含了系统所有文件的路径索引信息,所以查找速度很快。
Linux系统动创建这个数据库,并且每天动更新次,所以对于新变动的文件(如新安装或新拷贝)使locate命令是查不到的。为了避免这种情况,可以在使locate命令之前,先执行一下"sudo updatedb"命令来手动更新数据库。
优点:查找速度快,且支持所有文件类型
缺点:不支持新变动的文件检索,需要手动更新数据库(执行 updatedb 命令 )
例:
在这里插入图片描述

四、find命令

查找类型:所有文件;
检索范围:指定路径;
描述:find命令是Linux最强大的查找命令,参数多,用法丰富。
基本用法: find <检索路径> <选项> <搜索内容>
优点:功能强大,且支持组合命令;
缺点:如果指定的检索路径层级复杂,则检索速度较慢

下面是几种用法实例:
1.基础打印操作

find命令默认接的命令是-print,它默认以\n将找到的文件分隔。可以使用-print0来使用\0分隔,这样就不会分行了。但是一定要注意,-print0针对的是\n转\0,如果查找的文件名本身就含有空格,则find后-print0仍然会显示空格文件。所以-print0实现的是\n转\0的标记,可以使用其他工具将\0标记替换掉,如xargs,tr等。
注意:如果find命令后没有加命令,那么find查找当前所在的目录进行查找。

在这里插入图片描述

2.指定完整的文件名称,也可以使用通配符(正则)进行模糊查找。
默认情况下,该find命令搜索常规文件,但最好指定它以使所有内容更清晰:

常用的两个是-name和-path。
-name可以对文件的basename进行匹配,
-path可以对文件的dirname+basename。查找的文件名最好使用引号包围,可以配合通配符进行查找。find *.pdf    #搜索范围 当前目录(不递归)
find -name "*.pdf"  #当前面有参数-name时,后边一定带“ ”。#搜索范围:对当前目录下所有目录递归搜索

在这里插入图片描述
注意:但不能在-name的模式中使用”/“,除非文件名中包含了字符”/“,否则将匹配不到任何东西,因为-name只对basename(基础文件名)进行匹配。

3.根据目录深度搜索

#-maxdepth 和 -mindepth选项可以限制find命令遍历的目录深度
find -maxdepth 2 -mindepth 1 -name "*.pdf"

4.指定文件类型进行查找:
-type d: 查找目录;
-type f: 查找普通文件;
-type l: 查找软链接文件;

一般需要搜索的文件类型就只有普通文件(f),目录(d),链接文件(l)

在这里插入图片描述
5.按特定时间戳查找文件
类unix系统中每个文件都有三种时间戳

访问时间(-atime、-amin):用户最近一次访问文件的时间。

修改时间(-mtime、-mmin):文件最后一次被修改的时间。

元数据更改时间(-ctime、-cmin) :文件权限、所有权等最后一次被修改的时间。

time结尾的选项,其单位为天,min结尾的选项其单位为分钟,这些选项的值都为一个正负整数, 如+7,表示,7天以前被访问过的文件,-7表示7天以内被访问过的文件,7表示恰好7天前被访问的文件。

#要搜索atime一年多以前的文件,我们可以编写如下命令:
find . -type f -atime +365#如果我们需要查找mtime恰好是5天前的文件,请不要包含+,因为它的意思是“大于”。
find . -type f -mtime 5#显然,+“大于” -“小于”。所以我们可以搜索ctime5 到 10 天前的文件:
find . -type f -ctime +5 -ctime -10

6.按大小查找文件

#-size选项使我们能够按特定大小查找文件。我们可以将其度量单位指定为以下约定:b: 512 字节(默认)
c: 字节
w: 两字节字
k: 千字节
M: 兆字节
G: 千兆字节#类似于按时间戳查找文件,+意思是“大于”和-“小于”。例如,要查找大小在 10 MB 和 1 GB 之间的文件:find . -type f -size +10M -size -1G

7.按权限或所有权查找文件

#-perm选项find可以帮助我们按特定权限搜索文件:
#如:搜索所有具有 777(读、写、执行)权限的文件
find . -type f -perm 777
# 打印用户www拥有的文件
find -type f -user www

8.找到文件并执行命令

find . -type f -atime +365 -exec rm -rf {} \;#上面的-exec选项后面的命令是rm -rf,用于删除文件。{}是查找结果的占位符。#注意:占位符{}非常重要,尤其是在您想删除文件时。因为如果您不使用它,该命令将针对所有文件而不是您刚刚通过该find命令找到的文件执行。  
#     结尾 \; 也很重要  命令-exec必须以分号结束  "\"表示转义

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

相关文章

linux find 查找文件

每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就…

Linux如何搜索查找文件里面内容

在Linux系统当中&#xff0c;如何搜、索查找文件里面的内容呢&#xff1f; 这个应该是系统维护、管理当中遇到最常见的需求。那么下面介绍&#xff0c;总结一下如何搜索、查找文件当中的内容。 搜索、查找文件当中的内容&#xff0c;一般最常用的是grep命令&#xff0c;另外还…

Win10怎么搜索文件内容?Win10通过文件内容查找文件的方法

Win10怎么搜索文件内容&#xff1f;有些朋友电脑里的文件很多&#xff0c;想要找到某个文件&#xff0c;但是不记得文件名&#xff0c;只知道里面是有关什么的内容&#xff0c;想要通过搜索里面的文字内容来找到具体的文件&#xff0c;今天介绍Win10通过文件内容查找文件的方法…

文件查找(locate、find)

文件查找 在文件系统中查找符合条件的文件文件查找&#xff1a;locate,find 非实时查找&#xff08;数据库查找&#xff09;&#xff1a;locate 实时查找&#xff1a;find locate 查询系统上预建的文件索引数据库 /var/lib/mlocate.db 依赖于事先构建的索引 索引的构建是在系…

文件查找及具体实例

一、简介 Which&#xff1a;命令查找 Find&#xff1a;文件查找&#xff0c;针对文件名 Locate&#xff1a;文件查找&#xff0c;依赖数据库 二、命令文件查找 1.找到某些命令文件的位置 Which ls Whereis ls 三、文件查找find 实时查找工具&#xff0c;通过遍历指定路径…

Linux命令之查找文件find

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

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

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

mysql外键

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

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

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

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

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

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

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

【数据库】外键的作用

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

数据库之外键

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

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

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

数据库表外键设置

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

数据库——外键的作用

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

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

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

彻底理解数据库外键

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

什么是数据库外键?

外键 Teacher_id就是student的外键 Teacher是主表&#xff0c;student是子表&#xff08;从表&#xff09; 外键就是一个表中的一个字段引用了另一个表中的主键&#xff0c;引用的表叫做子表&#xff0c;被引用的表叫做主表&#xff0c;外键是一种约束&#xff0c;描述的是表之…

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

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