linux上文件查找工具: locate, find

locate:
依赖于事先构建的索引,索引的构建在系统较为空闲时自动进行(周期性任务),手动更新数据库(updatedb)
索引构建过程需要遍历整个根文件系统,极其消耗资源 工作特点: 查找速度快
模糊查找
非实时查找
find:
实时查找工具,通过遍历指定路径下的文件系统完成文件查找 工作特点:
查找速度略慢
精确查找
实时查找
语法:
find [OPTION]... [查找路径] [查找条件] [处理动作]
查找路径: 指定具体目标路径,默认为当前目录
查找条件: 指定的查找标准,可以是文件名、大小、类型、权限等
处理动作: 多符合条件的文件做什么操作,默认输出至屏幕 查找条件:
根据文件名查找:
-name "文件名称" : 支持glob,*,?,[],[^]
-iname "文件名称" :不区分字母大小写
-regex "PATTERN": 以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称 根据属主、属组查找
-user USERNAME: 查找属主为指定用户的文件
-group GROUPNAME:查找属主为指定组的文件 -uid USERID: 查找属主为指定的UID号的文件
-gid GROUPID: 查找属组为指定的GID号的文件 -nouser: 查找没有属主的文件
-nogroup: 查找没有属组的文件 根据文件类型查找
-type TYPE:
f: 普通文件
d: 目录文件
l: 符号链接文件
s: 套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件 根据文件大小来查找
-size [+|-]#UNIT
常用单位:k, M, G
#UNIT: (#-1,#]
+#UNIT: [#,oo]
-#UNIT: (0,#-1) 根据时间戳
以"天"为单位:
-atime [+|-]#:
#: [#,#+1)
+#: [#+1,oo]
-#: (0,#)
-mtime, -ctime
以"分钟"为单位
-amin, -mmin, -cmin 根据权限查找
-perm [/|-]MODE
MODE: 精确权限匹配
/MODE: 任何一类(u,g,o)对象的权限中只要能一位匹配即可
-MODE: 每一类对象都必须同时拥有为其指定的权限 处理动作:
-print: 默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行"ls -l" 命令
-delete: 删除查找到的文件
-fls /path/to/somefile:查找到的所有文件的长格式信息保存至指定文件中
-ok COMMAND {} \; : 对查找到的每个文件执行由COMMAND指定的命令
对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; : 对查找都的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身
# find /tmp -nouser -exec chown {} root {} \;
注意: find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令,
有些命令不能接受过多的参数,此时命令执行可能会失败,另一种方式可规避此问题
# find | xargs COMMAND 练习:
1.查找/var目录下属主为root,且属组为mail的所有文件或目录
# find /var -user root -group mail 2.查找/usr目录下不属于root、bin或hadoop的所有文件或目录
# find /usr -not \( -user root -o -user bin -o -user hadoop \) 3.查找/etc目录下一周内其内容修改过,同时属主不为root,也不是hadoop的文件或目录
# find /etc -not -user root -a -not -user hadoop -mtime -7 4.查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件
# find / -nouser -nogroup -atime -7 5.查找/etc目录下大于1M且类型为普通文件的所有文件
# find /etc -size +1M -type f 6.查找/etc目录下所有用户都没有写权限的文件
# find /etc -not -perm \222 7.查找/etc目录下至少有一类用户没有执行权限的文件
# find /etc -not -perm -222 8.查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的目录
# find /etc/init.d -perm -113

linux基础之find的更多相关文章

  1. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  2. 大数据每日干货第四天(linux基础之一目录结构与常用命令)

           为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...

  3. Linux课程实践一:Linux基础实践(SSH)

    一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...

  4. 还是不想改报告,伊阿忆啊哟-Linux基础继续

    hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...

  5. 原来今天是感恩节-Linux基础继续&MySQL和PHP

    hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...

  6. 买错的电影票,含着泪也得看-LAMP搭建&Linux基础

    hi 没说过,上周五室友过生请客,在龙湖里吃嗨了喝爽了,回去的路上侃侃而谈.说好的这周一起去看年内最后的大片,火星救援的,谁知道老子眼神不好,买错了电影的时间...把周六的约定提前到了今儿个下午,ma ...

  7. Linux基础3(文件权限)

    文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...

  8. Linux课程实践一:Linux基础实践(基础操作)

    一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...

  9. 实践一:Linux基础实践

    一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...

  10. Linux基础精华

    Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...

随机推荐

  1. gym101657 C

    嘻嘻嘻嘻,从读题到过题大概一个小时? 这套题题面太长了...就挑短的写.. 题意很简单.   给出平面上n个点,求一个面积最小的平行四边形覆盖这n个点. 显然要先求凸包. 然后枚举边就可以了.我一开始 ...

  2. hdu 2098 分拆素数和(素数)

    分拆素数和 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. java第一次上机实验--验证码

    package javashiyan; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event. ...

  4. 五子棋棋盘布局 table和ul哪个好

    想要在页面布局以上棋盘,可以用ul li 布局,但却有明显的缺点: 1.两行两列:ul li 下面如果再放li 会出错,只能是放其他的,比如div. 或者放li *行*列: 但是这样有两个明显缺陷: ...

  5. ArcEngine临时数据存储 创建内存工作空间

    参考网址,这里 工作中有时候需要使用临时数据,以前都是创建一个默认的shapefile或者gdb,今天发现esri官方帮助文档给出了一个方法,可以创建内存工作空间,代码如下: public stati ...

  6. Linux命令vi/vim 使用方法讲解

    vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的 ...

  7. 1 创建一个存储过程,以及对存储过程的调用 MySQL

    1  首先创建一张tb1表  sql语句如下 CREATE TABLE `tb1` (  `Id` int(11) NOT NULL AUTO_INCREMENT,  `age` int(11) DE ...

  8. DbSet<T>().Where(e => true)之后再想Include怎么办?

    DbSet<T>().Where(e => true)之后再想Include怎么办? 引用:https://www.cnblogs.com/godbell/p/7348411.htm ...

  9. css学习_css文字阴影、盒子阴影

    文字阴影和盒子阴影的用法: 多阴影

  10. Python2与python3 文件操作关于打开文件

    #首先在python3中操作文件只有一种选择,那就是open() #而在python2中则有两种方式:file()与open() 两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两 ...