前言

Linux的基本特点之一是一切皆文件,在系统管理过程中难免会需要查找特定类型的文件,那么问题

来了:如何进行有效且准确的查找呢?本文将对Linux系统中的文件查找工具及用法进行详细讲解。

常用工具对比

常用的文件查找工具主要有locate(非实时查找)和find(实时查找)。locate查找依赖于索引,

而索引构建相当占用资源,索引的创建是在系统空闲时由系统自动进行(每天任务),手动进行创建则

可使用updatedb命令,查找速度快但结果非精确,即为模糊查找。而find相对于locate而言,是遍历所

有文件进行条件匹配,查找速度慢但结果精确,即为精准查找。简言之,对于实际生产环境,find(实

时查找)无疑是最有效的文件查找工具。

find的用法

命令格式:

find [options] [查找路径] [查找条件] [处理动作]

查找路径:默认为当前目录
查找条件:默认为指定路径下的所有文件
处理动作:默认为显示至屏幕

条件查找

-name "文件名称":支持使用globbing字符*:任意长度任意字符?:任意单个字符[]:范围内任意字符[^]:范围外任意字符
-iname "文件名称":查找时忽略字符大小写
-user USERNAME: 根据文件的属主查找
-group GRPNAME: 根据文件的属组查找
-uid UID:根据用户UID查找
-gid GID:根据用户GID查找
-nouser: 查找没有属主的文件
-nogroup: 查找没有属组的文件

组合条件查找

-a:与,同时满足
-o:或,满足一个即可
-not:!非,条件取反

文件类型查找

-type TYPE:根据文件类型查找f:普通文件d:目录文件l:符号链接b:块设备c:字符设备s:套接字文件p:命名管道
-size [+|-]#UNIT:根据文件大小查找常用单位:k,M,G#UNIT:#-1<x<=#-#UNIT:x<=#-1+#UNIT:x>#(x为匹配到的文件大小)

时间戳查找

以“天”为单位
-atime(访问时间) [+|-]#+#:x>=#+1-#:x<##:#<=x<#+1(x为匹配到的文件时间)
-mtime(修改时间)
-ctime(改变时间)
以“分钟”为单位
-atime
-mtime
-ctime
(用法同上)

权限查找

-perm [+|-]MODEMODE:与MODE精确匹配+MODE: 任何一类用户的权限只要能包含对其指定的任何一位权限即可-MODE:每类用户指定的检查权限都匹配

处理动作

-print: 默认处理动作,显示
-ls:类似于ls -l
-exec COMMAND {} \;
-ok COMMAND {} \;
find一次性查找符合条件的所有文件,并一同传递给给-exec或-ok后面指定的命令,但有些命令不能接受过长的参数,此时使用另一种方式:
find | xargs COMMAND

find实战

#查找/scripts/目录中包含s以.sh结尾的文件并复制到/tmp目录

#查找/var/目录属主为root且属组为mail的所有文件

#查找/usr目录下不属于root、bin或scholar的所用文件

#查找/tmp/目录下最近一周内其内容修改过的,且不属于root且不属于scholar的文件

#查找当前系统上没有属主或属组,且最近1个月内曾被访问过的文件

#查找/etc/目录下大于1M且类型为普通文件的所有文件

#查找/etc/目录所有用户都没有写权限的文件

#查找/etc/目录下至少有一类用户没有写权限
#由于文件过多,已重定向

#查找/etc/rc.d/目录下,所有用户都有执行权限且其它用户有写权限的文件
#由于文件过多,已重定向

The end

对于权限查找+222和-222的取反匹配,学习时错误的只对+222和-222取反,可懵了好一会才想明

白。最后在啰嗦一句,切记:权限查找取反是对全局匹配取反,而不是只对权限取反!!!

以上只是学习总结,如有错漏,大神勿喷~~~

转载于:https://blog.51cto.com/scholar/1623450

Linux文件查找之find秘笈相关推荐

  1. Linux文件查找之findlocate

    Linux文件查找之find&locate 一.概述 Linux系统核心的思想之一"一切皆文件",对于这么多的文件,如何快速查找过滤呢?下面我们就看看系统提供的文件查找命令 ...

  2. Linux文件查找命令find,xargs详述

    Linux文件查找命令find,xargs详述 总结:zhy2111314 来自:LinuxSir.Org 整理:北南南北 摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量 ...

  3. Linux文件查找命令find用法整理(locate/find)

    Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2 ...

  4. linux进入文件全文搜索命令,Linux 文件查找命令详解

    大家好,我是"孤云幕雨":祝大家中秋快乐,今天给大家带来的是<Linux文件查找命令> 一.locate:依赖于事先构建的索引 v依赖于事先构建的索引:索引的构建是在系 ...

  5. linux 查找文件 locate,linux文件查找(find,locate)

    文件查找: locate: 非实时,模糊匹配,查找是根据全系统文件数据库进行的: # updatedb, 手动生成文件数据库 速度快 find: 实时 精确 支持众多查找标准 遍历指定目录中的所有文件 ...

  6. Linux文件查找与tar包管理、企业级sed应用 软件包管理与编译安装httpd

    总结 第7节 Linux文件查找与tar包管理.企业级sed应用 使用locate命令 使用find命令 压缩和解压缩工具 01-文件搜索 locate (00:02:30) locate test. ...

  7. linux检索docx内容,linux 文件查找和内容过滤命令.docx

    linux 文件查找和内容过滤命令 linux 文件查找和内容过滤命令 grep.fgrep和egrep命令 这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出 ...

  8. linux文件查找命令find,locate

    简介 vi : visual interface, 可视化接口.vim(VI IMproved) vim编辑器:文本编辑器.文本:纯文本,ASCII text; unicode; 文本编辑器种类: 行 ...

  9. Linux文件查找find和locate

    目 录 第1章 locate文件查找    1 1.1 概述    1 1.2 locate文件查找的特性    1 第2章 文件查找概述    1 第3章    1 3.1 文件名查找    1 3 ...

最新文章

  1. Linux配置示例:配置java环境变量
  2. SharePoint 2010开发实例精选——“每日一句”WebPart
  3. 推荐系统炼丹笔记:边缘计算+奉送20个推荐系统强特
  4. 安装Apache的步骤
  5. python数据库在哪_python可以用哪些数据库
  6. Python面向对象(类的成员之属性)
  7. php头尾分离,laravel怎么做模板的头尾分离
  8. x12arima季节调整方法_深秋是腌洋姜的季节,用老一辈的方法做一坛,比腌萝卜香还爽口...
  9. mybatis源码分析、底层原理
  10. 云服务器文件同步,Windows 8:本地文件与云服务器同步
  11. cocos2d-x Schedule详解
  12. 【李宏毅2020 ML/DL】P73 More about Anomaly Detection
  13. 正在搜索需要的文件一直在搜索_正在被蚕食的百度搜索
  14. 异常、模块、文件读写
  15. Object C中创建线程的方法有NSThread,GCD, NSOperation
  16. 图书管理系统项目开发计划书
  17. 3559A对接IMX577 4lane 12M
  18. Android webview 播放视频及全屏
  19. 《闻官军收河南河北》 杜甫
  20. AD与AAD区别和联系

热门文章

  1. 购物车的收货地址js php,Javascript实现购物车功能的详细代码
  2. linux操作系统之线程
  3. java object强制类型转换_scala object 转Class Scala强制类型转换
  4. c++中的继承--2(继承中的析构函数和构造函数,继承中同名成员,继承中静态成员)
  5. c++中的继承--1(引出,继承方式,继承的对象模型)
  6. Ubuntu软件更新失败
  7. Socket网络编程--小小网盘程序(1)
  8. makefile文件的书写规则(make和makefile)
  9. WinPcap笔记(7):分析数据包(1)
  10. odoo10 继承(扩展)、模块数据