`

Linux文件查找工具之find

阅读更多

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

locate:

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

find:

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

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

locate:

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

常用参数:

-i:忽略大小写

wKiom1bgPWGTjPsyAABDnEiqYOI752.png

实例:

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

# 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:]]:标点符号;

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

实例:

# find /etc -name "passwd*"

-iname “文件名” 不区分大小写

实例:

# find /tmp -iname "*yum*"
/tmp/yum.log
/tmp/YUM.LOG
# find /tmp -name "*yum*"
/tmp/yum.log

-user USERNAME:根据属主查找

-group USERNAME:根据属组查找

实例:

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

-uid UID:根据指定UID查找

-gid GID:根据指定GID查找

实例:

# 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有这个用户相同时就会可以查看此文件,所以需要删除此类文件。

实例:

# 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: 套接字文

实例:

# 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到正无穷

实例:

# 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

实例:

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

e、权限查找

根据权限查找:

-perm [+|-]MODE

MODE: 与MODE精确匹配

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

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

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

实例:

# 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 查找条件

实例:

# 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则不需要;

实例:

# 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

 

 

http://www.techug.com/linux-find

分享到:
评论

相关推荐

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

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

    Linux系统命令行Find工具使用小技巧

    find是在磁盘中查找满足给定标准的文件和目录的应用程序。默认情况下,它从当前目录开始,向下扫描所有子目录。Find基于各种不同的文件属性来进行查询,而且可以对查询结果执行某种操作,通常是对每个查询结果运行...

    linux中删除find找到的文件

    NULL 博文链接:https://skyline888.iteye.com/blog/786314

    linux模糊查找文件用什么命令比较好

    本文主要讲解如何在Linux系统下使用命令行工具模糊查找文件,本文的工具包括find命令的用法也介绍grep命令的使用方法,同时也有find与grep两者结合,能更精确根据条件查找文件。 2. 根据文件名模糊查找文件 例如...

    hcache缓存cache查看工具

    #直接下载hcache文件到linux,并使用该文件即可 ...#ps: 一般进程缓存的文件并不会太大, 最大的可能性是读写了大文件导致文件被缓存,建议检查下是否存在无用的超大日志,查找大于1G的文件 find / -type f

    可在windows使用的类linux工具xargs

    可在windows使用的类linux工具xargs,可以配合类liunx工具find进行文件处理。xargs的使用帮助为 xargs --help,实例可以上网查询。也可另外下载我的dos工具。

    Linux基础知识与系统管理教学课件-pdf.rar

    4.3.1 Linux常用命令-文件搜索命令-文件搜索命令find 4.3.2 Linux常用命令-文件搜索命令-其他文件搜索命令 4.4 Linux常用命令-文件搜索命令-帮助命令 4.5 Linux常用命令-文件搜索命令-用户管理命令 4.6 Linux常用...

    嵌入式系统/ARM技术中的Linux文件查找命令(四上)

    语法:find 起始目录 寻找条件 操作,提供各类ARM开发板/开发工具http://edmarket.com.cn/plist-3-855.html  说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取...

    RED HAT LINUX 6大全

    6.5.4 文件工具箱 101 6.5.5 当系统不能引导时,Red Hat会 来救援 102 6.5.6 获取更多的信息 103 6.6 小结 104 第7章 SMTP和协议 105 7.1 Internet电子邮件标准的历史简述 105 7.1.1 sendmail介绍 105 7.1.2 邮局...

    Linux中查找工具的友好替代方案

    find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。...

    Linux系统中如何查找大文件或文件夹的方法

    在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹的方法。 1: 如何查找大...

    linux使用find和crontab命令定期清理过期文件

    crontab 命令是 Linux 中用来设定重复执行命令或脚本的工具。它能够在指定的时间段内,按照需求以某一时间间隔执行命令或脚本。 crontab 的基本用法 crontab [-u ] [-e|-l|-r] crontab crontab &lt;filename&gt; 可以...

    入门学习Linux常用必会60个命令实例详解doc/txt

    ◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、...

    linux常用命令大全及详解.zip

    find:在文件系统中查找文件或目录。 chmod:修改文件或目录的权限。 chown:修改文件或目录的所有者。 chgrp:修改文件或目录的所属组。 tar:打包和解包文件。 gzip:压缩文件。 unzip:解压缩文件。 ssh:远程...

    linux常用命令大全.doc

    Linux是一个强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是一些Linux的常用命令: 文件管理命令: ls:查看指定目录中有哪些内容。 cd:切换当前目录。 pwd:...

    Linux基础知识与系统管理视频.rar

    4.3.1 Linux常用命令-文件搜索命令-文件搜索命令find 4.3.2 Linux常用命令-文件搜索命令-其他文件搜索命令 4.4 Linux常用命令-文件搜索命令-帮助命令 4.5 Linux常用命令-文件搜索命令-用户管理命令 4.6 Linux常用...

    Linux管理员指南

    ln命令 78 6.4.4 查找文件命令find 78 6.4.5 转换并拷贝文件命令dd 79 6.4.6 文件压缩命令gzip 80 6.4.7 建立子目录命令mkdir 81 6.4.8 删除子目录命令rmdir 81 6.4.9 显示当前工作子目录命令pwd ...

    LINUX安装与配置简明手册

    9.1.2 Linux文件系统的格式 107 9.2 快速解决方案 108 9.2.1 建立一个文件系统 108 9.2.2 挂装到文件系统上 108 9.2.3 从文件系统上卸载 109 9.2.4 简化常用挂装命令 109 9.2.5 挂装一个已经准备好的设备 类型 110 ...

    Linux指令一周通 (技术图书大系).azw3

    1.22 find指令:查找目录或者文件 1.23 fsck指令:检查并尝试修改文件系统错误 1.24 fsck.ext2指令:检查ext2文件系统并尝试修改错误 1.25 fsck.ext3指令:检查ext3文件系统并尝试修改错误 1.26 fsck.minix指令:...

Global site tag (gtag.js) - Google Analytics