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. 用dx生成dex时遇到class name does not match path

    前言 用dx生成dex时遇到class name (Hello) does not match path这个问题还弄了挺久,这里就简单的记录一下. 步骤 首先是dx工具是在Android的SDK里面的 ...

  2. 有关vue开发的小经验

    注册登录已经成为布局的常事,这里为大家推荐两种超级好用的布局display:flex;justify-content:center;这个可以解决水平居中的疑难杂症 align-center:cente ...

  3. jar命令打jar包

    jar -cvfM0 cloudwarehouse-enter.jar ./BOOT-INF ./META-INF ./org jar -cvfM0 xxl-job-admin.war ./BOOT- ...

  4. win10系统激活

    我们常常使用一些激活工具来激活,效果可能比较差.比如我激活win10教育版,下载了很多软件无论如何都不能激活.但是使用命令行很容易就激活了. 1. 2.在命令提示符中依次输入: slmgr.vbs / ...

  5. 51单片机和STM32单片机区别在那里

    ​大部分朋友可能都知道51单片机和stm32单片机也知道一般入门会先学习51单片机在学习stm32单片机会简单一些,但是对于51单片机和stm32单片机的具体区别却不知道了,有些人觉得没必要,但是我个 ...

  6. 扩容Linux文件系统

    扩容Linux文件系统 腾讯云 云硬盘扩容 https://cloud.tencent.com/product/cbs https://cloud.tencent.com/document/produ ...

  7. PHP多维数组转一维

    目录 1. array_column函数 2. array_walk函数 3. array_map函数 4. foreach循环 5. array_map变种 参考:https://www.awaim ...

  8. MySQL AUTO_INCREMENT 学习总结

    之前有碰到过开发同事指出一张InnoDB表的自增列 AUTO_INCREMENT 值莫明的变大,由于这张表是通过mysqldump导出导入的. 问题排查: 1.首先,查看表表义的sql部分的 auto ...

  9. random函数的使用

    random作为随机函数用处很多,在Python里面也经常使用,特别是处理一些随机事件的时候,特别好用! 废话不多说,直接看下面的例子: random.randomrandom.random()   ...

  10. Selenium上机实验

    1.安装SeleniumIDE插件 2.学会使用SeleniumIDE录制脚本和导出脚本 3.访问https://psych.liebes.top/st使用学号登录系统(账户名为学号,密码为学号后6位 ...