百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

Linux常用指令简介(7):文件搜索与过滤

xsobi 2025-01-13 18:50 142 浏览

在这一系列文章中,将介绍一些常见的Linux命令,帮助您快速熟悉并开始在Linux系统上进行日常操作。具体的指令使用方法可能会因系统而异,注意根据其自身的 Linux 系统进行适当的调整,可以通过man或--help指令查询。

我将常用指令分成了如下几类介绍:用户和权限管理、文件和目录管理、压缩和解压缩、系统信息查看、软件包管理、日志查看和管理、文件搜索和过滤、网络相关、文本处理、数据备份和同步。

1.find: 用于搜索文件系统中满足特定条件的文件。

find 命令的基本语法如下:

Bash
find [路径] [表达式]

其中,路径是指要搜索的目录路径,可以是绝对路径或相对路径。如果不指定路径,则默认从当前目录开始进行搜索。

表达式是用来设置搜索条件的,可以根据文件名、类型、时间、大小、权限等属性进行过滤。常用的表达式选项包括:

-name:按文件名进行匹配,可以使用通配符来进行模糊匹配。

例如:查找以 “.txt” 结尾的文件:

Bash
find /path/to/directory -type f -name "*.txt"

-type:按文件类型进行匹配,如普通文件、目录、符号链接等。

如查找所有目录:

find /path/to/directory -type d

如查找所有普通文件:

find /path/to/directory -type f

以下是一些常见的文件类型:

符号链接(symbolic link):-type l
命名管道(named pipe):-type p
套接字(socket):-type s
字符设备文件(character device):-type c
块设备文件(block device):-type b

-mtime/-atime:按文件的修改时间或访问时间进行匹配。

使用-mtime或-atime时,使用+n表示大于n天前,使用-n表示小于n天前,使用n表示正好n天前

例如,查找最近 7 天内修改过的文件:

find /path/to/directory -type f -mtime -7

使用-newermt选项时,后面跟着一个日期和时间的参数,表示你要匹配的时间范围。你可以使用多种日期和时间的格式,如YYYY-MM-DD(年-月-日)或YYYY-MM-DD HH:MM:SS(年-月-日 时:分:秒)。

例如,查找在 2023 年 8 月 1 日之后修改过的文件:

find /path/to/directory -type f -newermt "2023-08-01"

-size:按文件大小进行匹配。

例如,查找大小大于 1MB 的文件:

find /path/to/directory -type f -size +1M

例如,查找大小在 10MB 到 100MB 之间的文件:

find /path/to/directory -type f -size +10M -size -100M

以下是常用的单位:

c:以字节为单位。
k:以千字节(1024字节)为单位。
M:以兆字节(1024千字节)为单位。
G:以千兆字节(1024兆字节)为单位。

-perm:按文件权限进行匹配。

查找权限为 644 的文件:

find /path/to/directory -type f -perm 644

查找权限为 777 的目录:

find /path/to/directory -type d -perm 777

2.grep: 用于在文本中搜索指定的模式,并将匹配的行打印出来。

1)基本搜索:最常见的用法是使用 grep pattern filename 来搜索给定文件中包含指定模式的行。例如:

grep "hello" file.txt 

将搜索并打印出包含 “hello” 的所有行。

2)正则表达式搜索:grep 支持使用正则表达式来进行更灵活的搜索。例如:

grep "^hello" file.txt 

将搜索以 “hello” 开头的行。

grep "[0-9]+" file.txt 

将搜索包含一个或多个数字的行。

3)递归搜索目录:你可以使用 -r 或 -R 选项来递归搜索指定目录及其子目录下的文件。例如:

grep -r "hello" /path/to/directory 

将搜索并打印出包含 “hello” 的所有行,包括子目录中的文件。

其他选项:

1)忽略大小写:使用 -i 选项可以进行大小写不敏感的搜索。例如:

grep -i "hello" file.txt 

将搜索并打印出包含 “hello” 的所有行,不区分大小写。

2)统计匹配行数:使用 -c 选项可以仅显示匹配到的行数,而不显示匹配的具体内容。例如:

grep -c "hello" file.txt 

将仅显示包含 “hello” 的行数。

3)显示匹配行号:使用 -n 选项可以在匹配行时同时显示行号。例如:

 grep -n "hello" file.txt 

将打印出包含 “hello” 的每一行,并在每一行之前显示行号。

3. file:file 命令用于获取文件的类型信息。它可以检测文件的编码、文件格式和文件类型等信息。例如,检测文件的类型:

file myfile.txt
输出结果:
myfile.txt: ASCII text

相关推荐

给织梦栏目增加链接属性rel、nofollow和target

摘要:为了方便管理,直接在织梦后台栏目里自由把控每个栏目对应的链接属性,我们来给织梦栏目增加链接属性rel="nofllow"rel="external"rel=&...

Rust+Tauri2+React+TS剪切板管理桌面端应用开发示例

随着Tauri2.0的发布,Tauri越来越值得关注,当然与名气更大的Electron相比仍有差距,但因其有Rust加持,仍表现出很大潜力,如果想开发【小而美】的桌面端App,Tauri是个不错的选择...

宇宙厂:为什么前端要了解 Interaction to Next Paint (INP)

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!2024年3月,Interactio...

前端知识分享:vue3中,v-model核心用法

本文讲一下:在vue中,用于组件双向绑定的语法,v-model。什么是组件呢?简单来说,就是拼接成网页的一个个元素。我们制作网页就跟搭积木一样,这放一个button,那放一个表单,这放一个div,那...

前端入门——html 表单

前言前面已经学习相关html大部分知识,基本上可以制作出简单的页面,但是这些页面都是静态的,一个网站如果要实现用户的互动交流,这时表单就起到关键的作用,表单的用途很多,它主要用来收集用户的相关信息,是...

web前端Jquery学习笔记一

学习大纲一、了解Jquery1.什么是jqueryJquery是一款优秀的JavaScript框架,它是一个轻量的JS库,它兼容CSS3,还兼容各种浏览器(IE6.0+,火狐1.5+,谷歌,safa...

做个简单的本地弹幕播放器

前言本文仅仅是做一个简单的弹幕播放器本文弹幕播放器仅仅是演示一下发送弹幕功能请跳转本文底部的在线调试代码进行调试最终实现效果如下:Okay.首先你得找到一个弹幕开源库就是这个啦:https://git...

RocketMQ源码分析七之创建ConsumerGroup

在本章中,我们将分析RocketMQ是如何创建订阅组的。看看RocketMQ是如何实现的。如何开启&关闭在部署RocketMQ的Broker的时候,我们通常都会把autoC...

「春运专题」“春运倒计时第二天”(教你如何抢下铺)

工具/原料360极速浏览器方法/步骤在电脑上运行360极速浏览器,如果电脑中没有,不仿装一个试试。进入12306网站主页面。在订票中选中要坐的车次和日期,之后点击“预订”进入登录页面;按提示完成登录操...

初识HTML——列表标签和表单标签

列表标签在html中列表分为无序列表、有序列表和自定义列表(项目列表)。接下来就看看他们有什么不同吧!作用:如果说table标签是用来显示数据的,那么列表标签就是用来进行html页面布局的。无序列表语...

注册windows系统服务

一、把任意exe程序注册成windows系统服务1、方法一:使用windows自带的命令InstallUtil.exe步骤:运行--〉cmd:打开cmd命令框,在命令行里定位到InstallUtil...

DeepSeek火爆全网!我用它做个数学计算题生成器

作为一名家长,你是否曾为孩子的数学作业头疼不已?每天都要手动出题,检查答案,费时费力。最近,我借助DeepSeek的帮助,开发了一个简单实用的“数学计算题生成器”,彻底解决了这个问题!现在,我将分...

“五一”假期火车票抢票攻略:如何在12306网站选择上中下铺

目前,火车票预售期为60天计算,准备“五一”小长假铁路出行的旅客今天可以购票了。记者从北京铁路局获悉,今天(3月3日)起,电话订票与互联网同时发售5月1日之前(含1日)的车票;也就是说3月3日-5日,...

【HarmonyOS Next之旅】兼容JS的类Web开发(四) -> swiper

目录1->创建Swiper组件2->添加属性3->设置样式4->绑定事件5->场景示例编辑1->创建Swiper组件在pages/index...

表单元素之选择类型

表单元素的选择类型可以分为三种:单选多选下拉单选和复选框的属性值可以有两个:disabled(不可操作的)和checked。下拉框的属性值可以是:selected(默认选中)、multiple(...