linux find命令的使用

find命令的使用

简介

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

一、命令工具

locate:非实时查找工具,依赖于系统在较空闲时自动构建的索引数据库查找。优点:按索引查找,速度更快;缺点:索引数据库的构建并非是根据文件的修改实时更新。所以,查找的信息是过期的,只能够模糊查询;find:实时查找;find查找需要遍历整个默认或指定的目录,能够做到精确查找,查找速度却很慢。

二、find使用说明

find [OPTION]... [查找路径] [查找条件] [处理动作]查找路径:默认为当前路径查找条件:根据OPTION指定查找标准,具体条件可以使用正则表达式匹配处理动作:对符合条件的文件作出的动作;默认为输出到屏幕

三、OPTION和查找条件:

1、根据文件名查找:

-name FILENAME 可使用正则匹配

-inameFILENAME 不区分字符大小写

-regex "PATTERN" 匹配整个文件路径字符串,而不仅仅是文件名

2、根据文件类型查找:

-type f|b|d|l|c|s

f:普通文件

b:块文件c:字符文件

d:目录l:链接文件

s:socket 套接字文件

3、根据属主,属组查找

-nouser 查找没有属主的文件

-nogroup 查找没有属组的文件

-user USERNAME 查找属主为USERNAME的文件

-group GROUPNAME 查找属组为GROUPNAME的文件

-uid UID-gid GID

4、根据文件大小查找

-size [+|-] #

单位:K,M,G

#(#-1,#] #-1 < filesize <= #

+# (#,+oo) # < filesize

-# [0,#-1) 0 <= filesize < #-1

5、根据时间戳

单位为”天“

-atime accessed时间戳

-mtime modified时间戳 修改内容

-ctime changed时间戳 修改内容,属性

单位为”分“

-amin

-mmin

-cmin

#[#,#+1) 第 #天 # <= file[a|m|c]time < #+1

+# [#+1,+oo] #天前 #+1 <= file[a|m|c]time

-# [0,#) #天内 0 <= file[a|m|c]time < #

注解:#为当前时间减去文件时间戳的时间

6、根据权限

-perm mode :搜寻文件权限『刚好等于』 mode 的文件,这个 mode 为类似 chmod的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !

-perm -mode :搜寻文件权限『必须要全部囊括 mode 的权限』的文件,举例来说,www.linuxidc.com我们要搜寻 -rwxr--r-- ,亦即 0744 的文件,使用 -perm -0744,当一个文件的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。

-perm /mode :搜寻文件权限『包含任一 mode 的权限』的文件,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm /755 时,但一个文件属性为 -rw-------也会被列出来,因为他有 -rw.... 的属性存在!

7、组合查找

与:-a and

或:-o or

非:-not !

公式:

!A -o !B = !(A -a B)

!A -a !B = !(A -o B)

处理动作

-print: 默认处理动作

-ls:类似于对查找到的每个文件做"ls -l"的操作;

-delete: 删除查找到的文件;

-fls /path/to/somefile:查找到的文件的详细路径信息保存至指定文件中;

-ok COMMAND {} ;

对每个文件执行指定的命令之前需要用户事先确认;

-exec COMMAND {} ;

无需用户确认;

posted @ 2021-03-05 10:35  (◓3◒)  阅读(358)  评论(0)    收藏  举报