原文地址: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

Linux文件查找工具之find “大宝剑”--转载的更多相关文章

  1. linux文件查找工具——locate,find

    一文件查找介绍 文件的查找就是在文件系统上查找符合条件的文件. 文件查找的方式:locate, find非实时查找也就是基于数据库查找的locate,效率特别高. 实时查找:find 二locate ...

  2. Linux操作系统的文件查找工具locate和find命令常用参数介绍

    Linux操作系统的文件查找工具locate和find命令常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.非实时查找(数据库查找)locate工具  locate命 ...

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

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

  4. Linux文件查找.md

    Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 w ...

  5. linux文件查找find命令

    linux文件查找find命令 1.文件查找 基本介绍 在文件系统上查找符合条件的文件 linux上常见的文件查找工具:find命令 查找分类 实时查找 精确查找 基本语法 find  [option ...

  6. Duplicate Manager Pro for Mac(重复文件查找工具)破解版安装

    1.软件简介    Duplicate Manager Pro 是 macOS 系统上一款重复文件查找工具,可以帮你在 Mac 电脑上查找出磁盘上面的重复文件,然后让你对这些重复文件进行判断并删除,使 ...

  7. Linux文件查找命令find,xargs详述【转】

    转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Li ...

  8. Linux文件编辑工具——VIM

    Linux文件编辑工具--VIM 1.VIM基本概述 1.1 什么是vim vi 和 vim 是 Linux 下的一个文本编辑工具.(可以理解为 windows 的记事本,或 Notepad++ 1. ...

  9. 【存】008 Linux 文件查找 find

    01 一起来认识 find! 在 Linux 系统,find 毫无疑问是最强的文件查找工具.find 一般会与其他命令结合,将查找到的结果作为参数传入到后置命令中,进行删除.统计.复制迁移等操作. 0 ...

随机推荐

  1. Swift 中范围和区间如何使用?

    虽然现在swift语言已经发展到了2.0版了,但是相信很多学习iOS开发的童鞋仍对swift语言存在各种各样的疑问,今天小编将为大家详细介绍swift中的范围和区间,下面我们一起来看看吧. Range ...

  2. 巧用在线html编辑器,保存文章到数据库(带html标签)

    1.对于读取数据库的文章字段刷新到web页面,如何使文章格式很好的显示出来,那么数据库应存text格式,并记录文章的个数(转换为html): 2.如何转换html格式,可以使文章从word直接粘贴到在 ...

  3. Android组件Spinner使用

    Spinner组件是Android当中非常常用的一种用于下拉选择的组件. 本blog当中主要解决的几个问题: 如何在XML中初始化Spinner选项 如何使用代码的方式初始化Spinner选项 一个A ...

  4. C#:WebBrowser控件设置代理IP访问网站【附源码】

    软件截图 源码下载 http://download.csdn.net/detail/php_fly/8041731  

  5. solr课程学习系列-solr的概念与结构(1)

    Solr是基于Lucene的采用Java5开发的一个高性能全文搜索服务器.源于lucene,却更比Lucene更为丰富更为强大的查询语言.同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个 ...

  6. HTML 邮件链接,超链接发邮件

    在网页中可以设置如“联系我们”.“问题反馈”等所谓的邮箱链接,类似网页超链接,只是可以直接打开默认邮箱程序. 使用<a href="mailto:youEMail@xxx.yyy&qu ...

  7. shell变量注意事项

    概念:变量赋值,变量替换,变量引用,命令替换 variable=22 echo variable 可以在同一行设置多个变量.例如 va1=good   va2=chif va3=beijing  #需 ...

  8. Entity Framework Core 实现读写分离

    在之前的版本中我们可用构造函数实现,其实现在的版本也一样,之前来构造连接字符串,现在相似,构造DbContextOptions<T> 代码如下: public SContext(Maste ...

  9. 用户管理 之 用户(User)和用户组(Group)配置文件详解

    用户(User)和用户组(Group)的配置文件,是系统管理员最应该了解和掌握的系统基础文件之一,从另一方面来说,了解这些文件也是系统安全管理的重要组成部份:做为一个合格的系统管理员应该对用户和用户组 ...

  10. apache工作模式:prefork和worker

    apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多中,目前主要有两种模式:prefork模式和worker模式 一.两种模式 prefork模式: prefork是 ...