Linux文件管理知识:查找文件
前几篇文章一一介绍了LINUX进程管理控制命令及网络层面的知识体系,综所周知,一个linux系统是由很多文件组成的,那么既然有那么多文件,那我们该如何管理这些文件呢?
Linux中的所有数据都是以文件形式存在的,那么所有文件分别被归类到不同的文件系统中。而文件系统则是一种树型结构,通俗的理解为目录。
在linux系统中,你所做的每一步操作及所执行的每个命令都是基于文件系统底层逻辑来呈现出来的。
说到管理linux文件,首先您得先找见它!通过本节可以了解linux的文件管理第一步:查找文件等。今天这篇文章主要介绍下两个用来在linux系统中查找文件的工具或者命令程序。
• locate –通过名称来查找文件
• find – 在一个目录层次结构中搜索文件
locate - 查找文件的简单方法
locate 命令程序会执行一次快速的路径名数据库搜索进程,并且输出结果是与给定字符串相匹配的路径名称。locate 命令程序只能依据文件名来查找文件。
例如,找到所有名字以“zip”开头的文件:
[root@linuxprobe ~]$ locate bin/zip
locate 命令程序执行搜索路径名数据库进程,并输出任一个包含字符串“bin/zip”的路径名:
/usr/bin/zip
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipsplit
或者结合其它命令工具,例如grep 命令,来执行更全面的搜索:
[root@linuxprobe ~]$ locate zip | grep bin
/bin/bunzip2
/bin/bzip2
/bin/gunzip
/bin/gzip
/usr/bin/funzip
/usr/bin/gpg-zip
/usr/bin/prezip
/usr/bin/prezip-bin
/usr/bin/unzip
/usr/bin/zip
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipsplit
扩展知识:
有时候locate命令程序不能正常工作,但是呢第二天它就正常工作了。解决方法:首先转换为超级用户身份,在提示符下运行updatedb 命令,可以手动运行updatedb 命令程序即可。
目前,不同版本的Linux发行版中locate 命令程序有很多演变,不过它们都会拥有一定重叠的选项集合,可通过查看locate 命令的手册来确定安装了哪个版本的locate 命令程序。
find - 查找文件的高阶之路
find 命令程序支持基于给定的各种属性搜索查找文件。find 命令程序的魅力所在就是它能够找到符合特定标准属性的文件。
- 最简单的查找方式:
find 命令程序支持接收多个目录名来执行搜索查找。
例如:
[root@linuxprobe ~]$ find ~ //输出家目录的路径名列表
可想而知,查找结果会产生很大的列表。那我们可以尝试使用wc 命令程序来计算并显示出文件的数量:
[root@linuxprobe ~]$ find ~ | wc
-l46052
find 命令程序支持的常见文件类型测试条件如下:
表: find 文件类型
文件类型 | 描述 |
b | 块特殊设备文件 |
c | 字符特殊设备文件 |
d | 目录 |
f | 普通文件 |
l | 符号链接 |
- 通过文件大小和文件名搜索查找
例如:
查找所有文件名匹配通配符模式“*.JPG”和文件大小大于1M 的普通文件:
[root@linuxprobe ~]$ find ~ -type f -name "*.JPG" -size +1M | wc -l
237
//引入-name 测试条件,后面跟通配符模式。
//双引号引起来的作用就是阻止shell 展开路径名进程。
//引入-size 测试条件,后跟字符串“+1M”。加号“+”代表正在寻找文件大小大于指定数的文件。若以减号“-”开头,那就代表查找小于指定数的文件。若没有符号意味着“精确匹配这个数”。字母“M”表明测量单位是兆字节。测量单位的指定如下表:
表: find 大小单位
字符 | 单位 |
b | 512 个字节块。如果没有指定单位,则这是默认值。 |
c | 字节 |
w | 两个字节的字 |
k | 千字节(1024 个字节单位) |
M | 兆字节(1048576 个字节单位) |
G | 千兆字节(1073741824 个字节单位) |
以上列出的只是冰山一角,find 命令手册有更详细的说明。
总结:
find 命令程序搜索目录树以查找一个文件或一组文件。它遍历目录树并报告与用户规范匹配的文件的所有匹配项。查找程序包括非常强大的搜索功能。
locate 程序扫描一个或多个文件名数据库,并显示任何匹配项。如果文件在上次文件名数据库更新期间存在,则可以将其用作非常快速的查找命令。
当然,linux文件类型是不可或缺的一部分,在Linux中,基本的文件类型有以下三种:
1) 普通文件
普通文件基本包括文本文件、源码文件、可执行文件等。
2) 目录
目录可以包含普通文件和特殊文件,目录相当于Windows系统和Mac 系统中的文件夹。
3) 设备文件
设备文件就是Linux 与外部设备(如光驱,打印机等)进行通信所必需的文件。
关于linux系统文件查找命令的运用魅力不止如此,今天的介绍仅仅一小部分,所以强烈建议大家可以参考下《GNU Findutils 4.9.0》及《linux就该这么学》这两本书,对于linux系统文件管理层面的介绍很详细!
相关文章:
Linux文件管理知识:查找文件
前几篇文章一一介绍了LINUX进程管理控制命令及网络层面的知识体系,综所周知,一个linux系统是由很多文件组成的,那么既然有那么多文件,那我们该如何管理这些文件呢? Linux中的所有数据都是以文件形式存在的,…...

【TypeScript】安装的坑!
TypeScript安装 安装TypeScript安装时候可能报错这样开头的数据(无法枚举容器中的对象)——原因:没权限先解决没权限的问题如果发现无法修改-高级-修改继续安装想使用tsc-发现,tsc不能用解决方法:配置环境变量最后的最…...
spring boot 2.x 使用 jpa 映射 json mysql列数据映射乱码
通过下面的依赖,可以将 mysql 的 json 列字段(mysql 5.7及以上的版本支持),映射成 Java Bean <dependency><groupId>com.vladmihalcea</groupId><artifactId>hibernate-types-52</artifactId><v…...
创建Helm脚本
一、创建脚本 Helm 是 Kubernetes 的包管理工具,它可以帮助您简化和自动化 Kubernetes 应用程序的部署和管理。使用 Helm,您可以创建和管理称为 Helm Chart 的应用程序打包,这些 Chart 包含了 Kubernetes 资源和配置信息,可以在不…...

2.05 购物车后台刷新并显示
一.用户登录添加商品使用cookie存入购物车,并把购物车商品传入到后台 步骤1:创建购物车BO对象 public class ShopcartBO {private String itemId;private String itemImgUrl;private String itemName;private String specId;private String specName;p…...

2023年第四届“华数杯”数学建模思路 - 案例:异常检测
文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常检测 异常…...
inline的盒子设置transform不生效
目录 如何遇到的问题原因为什么会这样怎么解决 如何遇到的问题 最近在开发过程中,因为需要对一个icon进行旋转,而icon本身,是设置span的伪类来进行的,结果我发现无论怎么设置transform都无法使其生效。 span::before {font-famil…...
自然语言处理学习笔记(四)————词典分词
目录 1.中文分词 2.词典分词 (1)词的定义 (2)词典性质——齐夫定律 (3)词典 (4)加载词典 (5)hanlp词典路径 1.中文分词 中文分词:指的是将一…...
jsoncpp库和nlohmann-json库实现JSON与字符串类型转换
在ROS中,可以使用jsoncpp库来实现JSON与字符串类型之间的转换。jsoncpp是ROS自带的一个JSON库,它提供了一些函数来解析和生成JSON数据。 下面是一个使用jsoncpp库实现JSON与字符串类型转换的示例代码: #include <ros/ros.h> #include…...
20230803 函数传参引用
定义多输出变量的函数时,通过直接传参数内存地址在函数内部直接修改外部变量的值。需要定义函数时 在输入参数前加 引用符号 & 。 C 值传递、指针传递、引用传递详解...

IDEA SpringBoot项目引入外部jar并打包
1、首先,我们再pom.xml中导入依赖包时,打包可以正常进行。 但如果我们引入了第三方的外部jar包(这里需要先把jar包添加到该项目依赖库中,这里不做演示),如图 2、导致打包时报错,程序包不存在或…...

ModaHub魔搭社区——阿里云通义千问宣布开源!70亿参数模型上线魔搭社区,免费可商用
通义千问开源!8月3日,AI模型社区魔搭ModaHub上架两款开源模型Qwen-7B和Qwen-7B-Chat,阿里云确认其为通义千问70亿参数通用模型和对话模型,两款模型均开源、免费、可商用。在多个权威测评中,通义千问7B模型取得了远超国内外同等尺寸模型的效果,成为当下业界最强的中英文7B…...

Jenkins 自动化部署实例讲解,另附安装教程!
【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客 也可以结合这个互补看 前言 你平常在做自己的项目时,是否有过部署项目太麻烦的想法?如果你是单体项目,可能没什么感触,但如果你是微服务项目,相…...

arcgis字段计算器
1、两字段叠加。要求待叠加的字段类型为文本或字符串类型。如下: 2、字符串部分提取。...

数据结构: 线性表(无哨兵位单链表实现)
文章目录 1. 线性表的链式表示: 链表1.1 顺序表的优缺点1.2 链表的概念1.3 链表的优缺点1.4 链表的结构 2. 单链表的定义2.1 单链表的结构体2.2 接口函数 3. 接口函数的实现3.1 动态申请一个结点 (BuySListNode)3.2 单链表打印 (SListPrint)3.3 单链表尾插 (SListPushBack)3.4 …...
Exploring the Underlying Architecture of CSS3
引言 在现代的网页设计中,CSS(层叠样式表)起着至关重要的作用。CSS3作为最新的CSS标准,引入了许多令人兴奋的功能和特性。但是,要真正理解CSS3的底层架构实现原理,对于前端开发者来说,是非常重…...

方差分析||判断数据是否符合正态分布
方差分析练习题 练习学习笔记: (1) 标准差和标准偏差、均方差是一个东西。标准误差和标准误是一个东西。这两个东西有区别。 (2)单因素方差分析(MATLAB求解) (3)使用an…...

java linq多字段排序时间比较
public static void main(String[] args) {//100万条数据List<CrmInvestSaleUserCount> waitAssignUserList new ArrayList<>();for (int i 0; i < 1000000; i) {waitAssignUserList.add(new CrmInvestSaleUserCount().setSales_username("test" i…...

【c++】rand()随机函数的应用(二)——舒尔特方格数字的生成
目录 一、舒尔特方格简介 二、如何生成舒尔特方格 (一)线性同余法 1、利用线性同余法生成随机数序列的规律 (1) 当a和c选取合适的数时,可以生成周期为m的随机数序列 (2) 种子seed取值也是有周期的 2、利用线性同余法生成5阶舒尔特方格…...
“深入剖析JVM内部机制:探索Java虚拟机的运行原理“
标题:深入剖析JVM内部机制:探索Java虚拟机的运行原理 摘要:本文将深入探讨Java虚拟机(JVM)的内部机制,包括类加载、内存管理、垃圾回收、即时编译等关键概念和原理,帮助开发者更好地理解JVM的运…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...