首页 运维 linux运维 Linux中如何使用Find命令查找文件

Linux中如何使用Find命令查找文件

Mar 15, 2019 pm 04:25 PM
find linux 查找文件

Linux Find命令是Linux系统管理员工具库中最强大的工具之一,它允许我们根据用户给定的表达式搜索目录层次结构中的文件和目录,对每个匹配的文件应用用户指定的操作。下面本篇文章就来带大家了解一下Find命令的方法,希望对大家有所帮助。

Linux中如何使用Find命令查找文件

Linux  Find命令

使用find命令根据文件权限,类型,日期,所有权,大小等搜索文件。它还可以与其他工具结合使用,例如grep或sed对这些文件执行操作

在讨论如何使用find命令之前,我们先来了解一下基本语法:

find [options] [path...] [expression]
登录后复制

说明:

● options属性:控制符号链接,调试选项和优化方法的处理。

● path...属性:定义了find将搜索文件的起始目录。

● expression属性:由“options”,“搜索模式”和“由运算符分隔的操作”组成。

我们来看看下面的例子:

find  -L /home/projects/ -name "*.js" -exec chmod 644 {} \;
登录后复制

说明:此命令包含一个参数-L(options),它允许find命令跟随符号链接,搜索/home/projects/(path ...)下面的整个目录树,查找以.js(expression)结尾的所有文件,并将所有匹配文件的权限设置为644。

如何按类型查找文件?

要指定要查找的文件类型,需要使用-type参数。

可以使用以下描述符指定文件类型:

● f:常规文件

● d: 目录

● l:符号链接

● c:角色设备

● b:块设备

● p:命名管道(FIFO)

● s:套接字

示例:

如果要查找当前工作目录中的所有目录,可以使用:

find . -type d
登录后复制

如果要列出系统类型上的所有字符设备:

find / -type c
登录后复制

如何按名称查找文件?

按名称查找文件可能是find命令最常用的用法。要按名称查找文件,需要将该-name选项与要搜索的文件的名称一起传递。

示例:

要在/home/linuxize目录中搜索名为document.pdf的文件,可以使用以下命令:

sudo find /home/linuxize -type f -name document.pdf
登录后复制

如果要运行不区分大小写的搜索,可以-name使用-iname以下命令更改选项:

sudo find /home/linuxize -type f -iname document.pdf
登录后复制

说明:上面的命令将匹配Document.pdf,DOCUMENT.pdf ..等。

如何按扩展名查找文件?

按扩展名搜索文件与按名称搜索文件相同。

例如:

如果要查找以.log.gzinside /var/log/nginx目录结尾的所有文件,可以使用:

find /var/log/nginx -type f -name '*.log.gz'
登录后复制

如果要查找与正则表达式不匹配的所有文件,*.log.gz可以使用该-not参数。例如,要查找不以*.log.gz您结尾的所有文件,请使用:

find /var/log/nginx -type f -not -name '*.log.gz'
登录后复制

如何按大小查找文件?

要根据文件大小查找文件,需要将-size参数与大小条件一起传递。可以使用以下后缀指定文件大小:

● b:512字节块(默认)

● c:字节

● w:双字节字

● k:Kilobytes

● M:兆字节

● G:千兆字节

例如:

要在/tmp目录中查找完全1024字节的所有文件,可以运行以下命令:

find /tmp -type f -size 1024c
登录后复制

find命令还允许我们搜索大于或小于指定大小的文件。例如:

我们可以在当前工作目录中搜索小于1MB的所有文件,这需要在大小值之前添加减号:

find . -type f -size -1M
登录后复制

如果要搜索大小超过1MB的文件,则需要使用加号+:

find . -type f -size +1M
登录后复制

甚至可以搜索大小范围内的文件。例如,以下命令将查找介于1和2 MB之间的所有文件:

find . -type f -size +1M -size 21M
登录后复制

如何按修改日期查找文件?

find命令还可以根据上次修改,访问或更改时间来搜索文件。

与按大小搜索时相同,可以使用加号和减号来指定大于或小于。

例如:

几天前你修改了一个dovecot配置文件,但你忘了文件名。我们可以很容易地筛选以.conf结尾的/etc/dovecot/conf.d/目录中的所有文件,这些文件在过去5天内被修改为:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5
登录后复制

我们还可以列出30天或更久前修改的/home目录中的所有文件:

find /home -mtime +30 -daystart
登录后复制

如何按权限查找文件?

要根据文件权限过滤文件,需要使用该-perm选项。

例如:

要在/var/www/html目录中查找权限为775的所有文件:

find /var/www/html -perm 644
登录后复制

还可以使用减号-或斜杠/为数字模式添加前缀。

当斜杠/用作前缀时,至少一个类别(用户,组或其他类别)必须至少为文件匹配设置相应的位。

find . -perm /444
登录后复制

说明:搜索对用户,组或其他人设置了读权限的所有文件。

如果使用减号-作为前缀,则必须至少设置要匹配的文件。

find . -perm -664
登录后复制

说明:搜索对所有者和组具有读写权限的文件,并且其他用户可以读取。

如何按所有者查找文件?

要查找特定用户或组拥有的文件,可以使用-user和-group选项。

例如,要搜索用户拥有的所有文件和目录linuxize,可以运行:

find / -user linuxize
登录后复制

这是更高级的示例,假设是希望查找用户www-data拥有的所有文件,并将匹配文件的所有权从www-data更改为nginx:

find / -user www-data -type f  -exec chown nginx {} \;
登录后复制

相关视频教程推荐:《linux教程

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上是Linux中如何使用Find命令查找文件的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何解决Linux终端中查看Python版本时遇到的权限问题? 如何解决Linux终端中查看Python版本时遇到的权限问题? Apr 01, 2025 pm 05:09 PM

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

在Docker环境中使用PECL安装扩展时为什么会报错?如何解决? 在Docker环境中使用PECL安装扩展时为什么会报错?如何解决? Apr 01, 2025 pm 03:06 PM

在Docker环境中使用PECL安装扩展时报错的原因及解决方法在使用Docker环境时,我们常常会遇到一些令人头疼的问�...

如何在LAMP架构下高效整合Node.js或Python服务? 如何在LAMP架构下高效整合Node.js或Python服务? Apr 01, 2025 pm 02:48 PM

在LAMP架构下整合Node.js或Python服务许多网站开发者都面临这样的问题:已有的LAMP(Linux Apache MySQL PHP)架构网站需要...

在Linux终端中使用python --version命令时如何解决权限问题? 在Linux终端中使用python --version命令时如何解决权限问题? Apr 02, 2025 am 06:36 AM

Linux终端中使用python...

如何在macOS上将apscheduler定时任务配置为服务? 如何在macOS上将apscheduler定时任务配置为服务? Apr 01, 2025 pm 06:09 PM

在macOS上将apscheduler定时任务配置为服务在macOS平台上,如果你想将apscheduler定时任务配置为一个服务,类似于ngin...

Linux系统自带Python解释器能删除吗? Linux系统自带Python解释器能删除吗? Apr 02, 2025 am 07:00 AM

关于Linux系统自带Python解释器的删除问题许多Linux发行版在安装时会预装Python解释器,它并非通过软件包管理器�...

c语言多线程的四种实现方式 c语言多线程的四种实现方式 Apr 03, 2025 pm 03:00 PM

语言多线程可以大大提升程序效率,C 语言中多线程的实现方式主要有四种:创建独立进程:创建多个独立运行的进程,每个进程拥有自己的内存空间。伪多线程:在一个进程中创建多个执行流,这些执行流共享同一内存空间,并交替执行。多线程库:使用pthreads等多线程库创建和管理线程,提供了丰富的线程操作函数。协程:一种轻量级的多线程实现,将任务划分成小的子任务,轮流执行。

web.xml怎么打开 web.xml怎么打开 Apr 03, 2025 am 06:51 AM

要打开 web.xml 文件,可以使用以下方法:使用文本编辑器(如记事本或 TextEdit)使用集成开发环境(如 Eclipse 或 NetBeans)使用命令行编辑命令(Windows:notepad web.xml;Mac/Linux:open -a TextEdit web.xml)

See all articles