解析find用法

简介:

一,在linux上有两个比较常用的搜索工具

1,locate :模糊查找,速度快,依赖自身的的数据库,非实时查找,比较少用。

2,find:精确,实时查找,速度稍微慢点。

二,find语法 find [-H] [-L] [-P] [path...] [expression]

其中,'-H' '-L' '-P'三个选项主要是用来处理符号连接,'-H'表示只跟随命令行中指定的符号连接,'-L'表示跟随所有的符号连接,'-P'是默认的选项,表示不跟随符号连接。这三个选项很少用,因此find  的语法简化成   find   路径   表达式,  表达式由查找条件和处理动作组成。默认路径是当前所在的目录

1, 查找条件:

(1)-name filename(可以使用通配符*,使用通配符时用双引号引起来)

查找当前系统上passwd的文件名

find / -name passwd

(2)-iname 忽视查找文件名的大小写

查找当前系统上PASSWD和passwd的文件

find / -iname passwd

(3)-regex "patern" 使用基本正则表达式  给出的正则表达式必须要匹配完整的文件路径

find / -regex "find" 找不到/usr/bin/find

正确用法find / -regex ".*find"或者更精确一点find / -regex ".*/find"

(4)-iregex 忽然大小写

(5)-user username

查找文件的属主是user1的

find / -user user1

(6)-group groupname

查找当前系统属组是nobody的文件

find / -group nobody

(7)-uid  usernum

查找文件的属主uid为 500

find / -uid 500

(8)-gid  group

(9)-nouser

查找当前系统没有属主的文件

find / -nouser  

(10)-nogroup

2,多条件查找,条件间逻辑关系:

(1)-a(与)  同时满足两个条件

查找/etc文件名为passwd且属主为root

find /etc/ -name "passwd" -user root(默认是 -a 可以省略)

(2)-o(或)

查找/etc文件名为passwd或属主为user

find /etc/ -name "passwd"  -o -user root(-o不能省略)

(3)! (非)或-not

查找 /etc文件名包含passwd 或者 属主不是root的文件

find /etc/ -name "passwd*"  -o  -not -user root

三,-type 根据文件类型

(1)f 正规文件

查找当前系统文件名passwd且是普通文件

find / -name passwd -a -type f

(2)d 目录

(3)l 链接文件

(4)b 块设备

(5)c 字符设备

(6)p 数据传送文件

(7)s socket设备

4, -size (k|M|G)默认单位是字节

(1)+4M(大于4M)

查找文件大小为大于4M

find /boot  -size +4M

(2)-4M(小于4M但是3M--4M不在这个范围)

(3)4M(查找3M--4M)

5,day(单位为天)

(1)-atime [+/-] (访问时间)

查找第3天被访问过的文件

find / -atime 3

查找最近3天访问过的文件

find / -atime -3

查找3天之前被访问的文件

find / -atime +3

(2)-mtime(修改时间)

(3)-ctime(改变时间)

6, minute(单位分钟)

(1)-amin

(2)-mmin

(3)-cmin

7,权限-perm

(1)mode  查找档案权限刚好等于mode

查找 档案权限为222

find / -perm 222

(2)/mode  模糊匹配(只要满足其中一个就会匹配到)

查找user权限为7或group权限为7或others权限为7的

find / -perm  /777

(3)-mode  必须要全部包括mode权限(比mode大的也会被匹配到)

查找档案权限大于777

find / -perm -777

8,  处理动作:默认是 -print把结果打印到屏幕上

-exec  command {} \;(将前面查找的结果输入给command命令,{}表示占位符)

查找当前没有属主和属组的文件,将它们属主,组改成root

find / -nouser -a -nogroup -exec chown root:root {} \;

9,find与xargs将find查找到的结果用管道输入给xarg

find |xargs command

查找一个文件为PASSWD的文件并删除

find / -name PASSWD |xargs rm -f

在/tmp下找到文件名是core的文件,自动切换到新行,并且删除。

find  /tmp -name core  -type f -print  |xargs /bin/rm -f

在/tmp下找到文件名是core的文件,不自动切换到新行,并且删除。

find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f

读取/etc/passwd里的用户并用echo显示

cut -d: -f1 </etc/passwd |sort |xargs echo

exec 后面跟可执行文件,如果在脚本里写exec /sbin/halt 表示会在当前shell执行,不会在当前shell的子shell中执行。

10,查看文件没有属主,属组 find / -nouser -nogroup (-a可以省略)

11,查找没有属主或属组的 find / -nouser -o nogruop

12, ind ./ -type f -name '*.php'  可遍历目录
13, find ./ -maxdepth 1 -name '*.php' 不遍历,只寻找一级目录

14,查看db_summba_site开头的文件

find /cloud/databackup/databasebakup/   -mtime +30 -a -name  'db_summba_site*'  |xargs ls










本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/903149,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
Dart 数据安全/隐私保护
Dart笔记:Dart 语言中的存取器及其用法解析
Dart笔记:Dart 语言中的存取器及其用法解析
51 0
|
3月前
|
SQL Java 数据库
深入解析MyBatis-Plus中静态工具Db的多种用法及示例
深入解析MyBatis-Plus中静态工具Db的多种用法及示例
125 0
|
4月前
|
C语言
C 语言中布尔值的用法和案例解析
在编程中,您经常需要一种只能有两个值的数据类型,例如: - 是/否 - 开/关 - 真/假 为此,C语言有一个 `bool` 数据类型,称为布尔值。
113 1
|
3月前
|
JavaScript API Windows
Nodejs 文件 与 路径 相关用法实例解析
Nodejs 文件 与 路径 相关用法实例解析
79 0
|
1月前
|
算法 编译器 C++
【C++ 泛型编程 进阶篇】:C++ 元模版编程 typename关键字的多种用法全解析
【C++ 泛型编程 进阶篇】:C++ 元模版编程 typename关键字的多种用法全解析
36 0
|
1月前
|
存储 安全 程序员
【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南
【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南
71 0
|
1月前
|
Python
Python中sort和sorted函数用法解析
Python中sort和sorted函数用法解析
19 0
|
7月前
|
监控 Oracle 数据可视化
深度解析JVM性能监控工具:推荐与详细用法
深度解析JVM性能监控工具:推荐与详细用法
215 0
|
2月前
|
前端开发 JavaScript BI
JavaScript的过滤大师:深度解析Filter用法
JavaScript的过滤大师:深度解析Filter用法
70 0
|
3月前
|
应用服务中间件 nginx Docker
docker系列:dockerfile及其用法解析
docker系列:dockerfile及其用法解析
85 0

推荐镜像

更多