首页 > 运维 > linux运维 > 正文

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

原创 2019-03-15 16:25:35 0 507
赞助会员专享特权
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中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:Linux Find 查找文件
  • 本文原创发布php中文网 ,转载请注明出处,感谢您的尊重!
  • 相关文章


  • 如何搭建linux服务器
  • 如何在Linux中提取Zip,Gz,Tar,Bz2,7z,Xz和Rar文件
  • Linux中如何使用rename命令重命名文件?
  • 如何在Linux上设置SSH密码以进行无密码登录
  • Linux中如何使用Find命令查找文件
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
    独孤九贱(5)_ThinkPHP5视频教程

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(4)_PHP视频教程

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(1)_HTML5视频教程

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    作者信息

    青灯夜游

    今天学习一小步,明天提升一大步

    最近文章
    html menu标签怎么用 440
    html tfoot标签怎么用 808
    html time标签怎么用 687

    相关视频教程

  • Linux基础进阶视频教程 Linux基础进阶视频教程
  • Linux开发篇视频教程 Linux开发篇视频教程
  • Linux从入门到精通 Linux从入门到精通
  • Linux开发视频教程 Linux开发视频教程
  • 相关视频章节