博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解析find用法
阅读量:5989 次
发布时间:2019-06-20

本文共 2752 字,大约阅读时间需要 9 分钟。

一,在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,如需转载请自行联系原作者
你可能感兴趣的文章
ie和firefox浏览器对透明flash的兼容性问题
查看>>
日积月累--exception记录
查看>>
麦当劳的silverlight
查看>>
jdk
查看>>
nginx反向代理websocket
查看>>
简单的jquery点击弹出背景变暗遮罩效果
查看>>
Git基础入门(八)Git分支的基本概念
查看>>
说说GestureDetector.OnGestureListener onScroll函数
查看>>
蜕变成蝶~Linux设备驱动之watchdog设备驱动
查看>>
48、BGP配置实验之路由反射器
查看>>
高通:目前的技术无法控制移动端VR发热问题
查看>>
[SRS流媒体]RTMP/HLS 直播服务器simple-rtmp-server安装
查看>>
Linux unit10
查看>>
Exchange2013 Get-MessageTrackingLog Powershell使用
查看>>
nagios 添加需要监控的主机
查看>>
Windows2003中Exchange2003安装过程
查看>>
eclipse导入web项目之后项目中出现小红叉解决办法
查看>>
CUDA学习(二十一)
查看>>
关于在单独的 Js文件中无法使用 <%= %> 的原因及解决方案
查看>>
Android中文API (109) —— SimpleCursorTreeAdapter
查看>>