原文地址:http://xinzong.blog.51cto.com/10018904/1749465

一、文件查找工具常用软件

locate:

locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

find:

    find命令用来在指定目录下查找文件,通过遍历指定的目标目录,实时查找符合指定属性的文件。可以结合正则表达式(REGular EXPressio)来匹配模式。

二、软件常用参数及使用方式

locate:

使用格式:locate [OPTION]... PATTERN...

常用参数:

-i:忽略大小写

实例:

过滤/etc/下以sh开头的文件

1
2
3
4
# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

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

查找路径:默认为当前路径;

查找条件:默认为指定路径下的所有文件;

处理动作:默认为打印至屏幕;

1、查找路径

默认为当前路径,可以指定系统内的任意路径,但不建议使用/

2、查找条件

(1)基本查找条件

a、用户、用户组及文件名查找

-name "文件名":文件名支持使用globbing

glob:文件名通配;快速引用多个文件;文件名整体匹配度检测;

元字符:基于元字符可编写匹配模式(pattern);

*:匹配任意长度的任意字符;

?:匹配任意单个字符;

[ ]:匹配指定集合内的任意单个字符;

[a-z], [A-Z]:不区分字符大小写;

[0-9]

[a-z0-9]

[[:upper:]]:所有大写字母;

[[:lower:]]:所有小写字母;

[[:digit:]]:所有的数字;

[[:alpha:]]:所有字母;

[[:alnum:]]:所有字母和数字;

[[:space:]]:空白字符;

[[:punct:]]:标点符号;

[^ ]:匹配指定集合外的任意单个字符;

实例:

1
# find /etc -name "passwd*"

-iname "文件名" 不区分大小写

 

实例:

1
2
3
4
5
# find /tmp -iname "*yum*"
/tmp/yum.log
/tmp/YUM.LOG
# find /tmp -name "*yum*"
/tmp/yum.log

-user USERNAME:根据属主查找

-group USERNAME:根据属组查找

 

实例:

1
# find /var -user root -o -group mail

-uid UID:根据指定UID查找

-gid GID:根据指定GID查找

 

实例:

1
2
3
# find /tmp -uid 3323 -ls
2346806    0 -rw-rw-r--   1 mageedu  mageedu         0 Mar 10 09:36 /tmp/mageedu
2346812    0 -rw-rw-r--   1 mageedu  mageedu         0 Mar 10 09:36 /tmp/testfile

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件需

-nouser与-nogroup参数主要用在当公司员工离职后,虽然账户删除,但是他所有权限的文件还存在,并且以UID的形式来标识属主与属组,既当有uid有这个用户相同时就会可以查看此文件,所以需要删除此类文件。

实例:

1
2
3
# find /tmp -nouser -nogroup -ls
2346806    0 -rw-rw-r--   1 3323     3323            0 Mar 10 09:36 /tmp/mageedu
2346812    0 -rw-rw-r--   1 3323     3323            0 Mar 10 09:36 /tmp/testfile

b、文件类型查找

-type TYPE: 根据文件类型查找

f: 普通文件

d: 目录文件

l: 符号链接文件

b: 块设备

c: 字符设备文件

p: 命令名管道文件

s: 套接字文

实例:

1
# find /tmp -type d -ls

c、文件大小

-size [+|-]#UNIT:

常用单位有:k, M, G

#UNIT: #-1 < x <= #

2k指1k-2k

-#UNIT:x <= #-1

-2k:指0k-1k

+#UNIT: x > #

+2k:指2k到正无穷

实例:

1
# find /etc/ -type f -size +1

d、时间戳查找

以“天”为单位

-atime [+|-]#

-mtime [+|-]#

-ctime [+|-]#

#: 例如:今天为3月10日,3就是3月7日到3月8日(注意天是24小时制)

-#: 例如:今天为3月10日,-3就是三天内指,3月7日的现在时间到现在的时间。

+#: 例如:今天为3月10日,+3就是三天前之前指,3月7日前

以“分钟”为单位

-amin [+|-]#

-mmin

-cmin

实例:

1
2
# find /etc -not -user root -not -user hadoop -mtime -7
# find / -nouser -nogroup -atime -3

e、权限查找

根据权限查找:

-perm [+|-]MODE

MODE: 与MODE精确匹配

+MODE:任何一类用户的权限只要能包含对其指定的任何一位权限即可;

-MODE:每一类用户的权限都包含对其指定的所有权限;

#这里是指包含,例如:-444 指在属主、属组、其他用户中只要包含读权限就可以。

实例:

1
2
# find /etc/init.d/ -perm -113  #此处指所有用户都有执行权限,其他用户有写权限的文件或目录
# find /etc/ -type f -not -perm +222 #此处指所有用户都没有写权限

(2)组合查找条件

组合查找条件:

与:-a, 查找条件1 -a 查找条件2 -a ...

所有条件必须同时满足

或:-o, 查找条件1 -o 查找条件2 -o ...

满足其中一个条件即可

非:-not, !

-not 查找条件

实例:

1
2
# find / \( -nouser -o -nogroup \) -a -atime -3
# find /etc/ -not \( -user root -o -user hadoop \) -a -mtime -7

3、处理动作

-print: 默认动作,打印至屏幕;

-ls: 显示找到的文件的详细属性;

-exec COMMAND {} \;

-ok COMMAND {} \;

#exec与ok的区别:ok会提供交互式,让你确认。而exec则不需要;

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
# find /tmp -iname "*yum*" -type f -ls
   134    0 -rw-r--r--   1 root     root            0 Mar 10 09:32 /tmp/yum.log
   137    0 -rw-r--r--   1 root     root            0 Mar 10 09:32 /tmp/YUM.LOG
# find /tmp -iname "*yum*" -type f -exec ls -l {} \;
-rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/yum.log
-rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/YUM.LOG
# find /tmp -iname "*yum*" -type f -exec echo {} >>/tmp/test.file \;
# find /tmp -iname "*yum*" -type f -ok echo {} >>/tmp/test.file \;
echo ... /tmp/yum.log > ? y
echo ... /tmp/YUM.LOG > ? y

转载于:https://www.cnblogs.com/davidwang456/p/5288597.html

Linux文件查找工具之find “大宝剑”--转载相关推荐

  1. Linux文件查找工具之find “大宝剑”

    一.文件查找工具常用软件 locate: locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这 ...

  2. Linux文件查找工具的探索

    经过 Linux 系统不断探索,不断发展到现代文明,我们都必须坚信:一个典型的 Linux 系统是包含很多文件的,即是由文件组成的!那么新的问题就会涌现到我们的脑海中--"我们如何查找呢?& ...

  3. linux文件查找工具,分享|Linux 中一种友好的 find 替代工具

    fd 命令提供了一种简单直白的搜索 Linux 文件系统的方式. fd 是一个超快的,基于 Rust 的 Unix/Linux find 命令的替代品.它不提供所有 find 的强大功能.但是,它确实 ...

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

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

  5. Linux文件查找之find秘笈

    前言 Linux的基本特点之一是一切皆文件,在系统管理过程中难免会需要查找特定类型的文件,那么问题 来了:如何进行有效且准确的查找呢?本文将对Linux系统中的文件查找工具及用法进行详细讲解. 常用工 ...

  6. linux的locate工具,linux文本查找工具之locate、find

    linux文本查找工具之locate.find 一.文件查找分为两类: 1.非实时查找:locate 2.实时查找:find 二.非实时查找:locate 非实时查找:查找速度快.非精准查找.模糊查找 ...

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

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

  8. 9款最佳的Linux文件比较工具

    程序员和撰稿人在编写程序文件或平常的文本文件时,有时想知道两个文件或同一文件的两个版本之间的差异.你在Linux上比较两个计算机文件时,文件内容之间的差异就叫diff.这一描述来源于提到diff的输出 ...

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

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

最新文章

  1. 列举当前用户或指定用户的所有表,所有字段,以及所有约束
  2. python2转python3代码_python2代码批量转为python3代码
  3. spring的基本知识
  4. ubuntu 12.04 eclipse 安装
  5. Encapsulate Downcast(封装向下转型)
  6. android网络盒子改,有什么办法可以把淘汰下来的安卓手机改造成电视盒子用?...
  7. java记住用户名和密码_JAVA--高级基础开发Cookie实现记住用户名和密码
  8. python-json下载以及分析-案例
  9. HDU 1234- 开门人和关门人
  10. python中fabs函数_Python fabs() 函数 - Python 教程 - 自强学堂
  11. Java 某天的开始时间与结束时间
  12. flash游戏教程集锦~~
  13. php 时间转时辰,女子十二时辰,最佳养颜作息时间表!(女人必看!)
  14. 智能投影机android系统,智能投影机
  15. sai椭圆尺子等比例放大或者缩小
  16. NAS如何外网访问?手把手教你申请公网IP(收藏)
  17. 教程篇(7.0) 12. FortiGate安全 SSL安全隧道 ❀ Fortinet 网络安全专家 NSE 4
  18. 光纤布线对企业基础设施网络的五大影响
  19. 怎么才能快速学好UI设计 相关学习路线是什么
  20. css实现网页轮播图设置

热门文章

  1. java remove removeat_2016.3.12 Java中ArrayList类详解(转)
  2. php教程数据库操作,PHP实现对文本数据库的常用操作方法实例演示_PHP教程
  3. cmpp3.0协议 java,JAVA CMPP3.0协议实现
  4. css图片过大,CSS解决图片过大撑破DIV的方法
  5. django oracle clob,记一次clob字段损坏导致的01555错误
  6. 成考高起专计算机统考试题,成考考试题型
  7. 银行家算法的分析与实现
  8. linux体验服务器,体验Ubuntu做服务器
  9. win10 配置 maven_home 一会儿成功一会儿失败_在macbook上运行移动硬盘里的win10和macos...
  10. bio linux 创建_不断升级,Java之BIO、NIO、AIO的演变