`

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教程-linux文件查找-find.docx

    Linux 中的 find 命令是一种实时查找工具,通过遍历指定路径完成文件查找工作。该命令具有查找速度略慢、精确查找、实时查找和查找条件丰富等特点。 基本语法: ``` find [OPTION]... [查找路径] [查找条件] [处理...

    find 按文件修改时间查找文件及find空文件夹.docx

    在 Linux 系统中,find 命令是一个非常强大的工具,用于搜索和查找文件。今天,我们将通过实践教程,学习如何使用 find 命令来查找文件,并深入了解 Linux 文件的三种时间。 查找文件 find 命令可以根据文件的修改...

    linux下使用find命令根据系统时间查找文件用法.docx

    需要注意的是,find 命令的时间戳参数可以与其他参数组合使用,以实现更加复杂的文件查找功能。例如,查找过去 24 小时内修改的文件,并且文件名以 txt 结尾:`find . -mtime 0 -name "*.txt"` 使用 find 命令根据...

    Linux网络操作系统基础:文件命令查找find命令用法.pptx

    Linux 操作系统作为一个流行的开源操作系统,在文件管理方面提供了丰富的命令和工具,其中 find 命令是其中一个重要的文件命令。find 命令可以在指定目录下查找文件,并且可以指定一些匹配条件,如按文件名、文件...

    Linux下查找命令find的详细用法[借鉴].pdf

    在 Linux 系统中,find 命令是一款功能强大且灵活的搜索工具,可以根据各种条件来搜索文件和目录。下面是 find 命令的详细用法和示例。 查找文件 通过文件名查找法:可以使用 `-name` 选项来搜索文件。例如,查找...

    Linux服务器日志文件查找技巧精粹-电脑资料.doc

    Linux服务器日志文件查找技巧精粹 Linux服务器日志文件查找技巧精粹是指在Linux服务器中查找和分析日志文件的技术和策略。日志文件是服务器中记录事件和活动的文件,对于服务器的安全和性能监控非常重要。以下是...

    Linux中find常见用法示例.docx

    find 命令是 Linux 系统中一个非常强大的文件搜索工具,它可以根据不同的参数和选项来查找和处理文件下面将详细介绍 find 命令的常见用法示例: 1. 基本语法:find path -option [ -print ] [ -exec -ok command ] ...

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

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

    linux中删除find找到的文件

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

    hcache缓存cache查看工具

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

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

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

    linux中grep命令的使用.docx

    find 命令用于从目录树中查找与搜索条件匹配的文件,而 grep 命令用于查找输入流中包含模板文本的行。例如,使用 find /etc -name * | xargs grep wl0505 命令可以查找 etc 目录下含有字符串"wl0505"的文件。 grep ...

    可在windows使用的类linux工具xargs

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

    《Linux开发环境及应用》期末考试样卷及参考答案1

    * 使用find命令在指定的目录树中查找满足某个条件的文件或目录 * 使用diff命令对文本文件进行比较,找出两个文件的差别 * 使用md5sum命令或sha1sum命令验证文件内容是否完全相同 * 使用cp命令实现增量拷贝的功能 * ...

    Linux常用命令.pdf

    find 命令用于查找文件或目录。常用的选项和参数包括: * -name:按文件名称查找。 * -user:按文件属主查找。 * -type:按文件类型查找。 * -size:按文件大小查找。 例如,在 /etc 目录下查找文件名包含 eth0 的...

    linux常用命令大全 Linux是一个强大的操作系统

    find:在目录树中查找文件 grep:搜索文本并打印匹配行 chmod:更改文件或目录的权限 chown:更改文件或目录的所有者 文件内容查看 cat:连接文件并打印到标准输出 more:分页显示文件内容 less:类似于more,但提供...

Global site tag (gtag.js) - Google Analytics