1. find命令与locate命令的区别:

      1. locate:
        1. 非实时查找;
        2. 依赖于索引,而索引构建非常占用资源,索引的创建是在系统空闲时系统自动进行,可以用updatedb命令更新索引;
        3. 查找速度快;
        4. 非精确查找;
      2. find:递归地在层次目录中搜索符合条件的文件;
        1. 实时查找;
        2. 精准查找 (系统上实时的有就是有没有就是没有);
        3. 精确查找 (查找结果绝对符合查找条件才予显示);
        4. 查找速度慢;
    2. find使用方法:默认使用当前目录;
           find  [搜索路径]  [搜索条件]  [处理动作]
  1. find搜索条件
    1. -name/-iname:根据用户相关的参数进行查找;
      1. -iname:    按照文件名来搜索(可以使用通配符);

        通配符有:*:      匹配任意多个字符;

        ?:      匹配任意一个字符;

        []:     匹配任意一个中括号内的字符;

        [^]:   匹配任意一个不在中括号内的字符;

      2. -iname:    按照文件名来搜索,并忽略大小写(可以使用通配符);

      3. -user:              按照文件所有者搜索;

      4. -group:           按照文件所属组搜索;

      5. -nouser:          搜索不属于这个用户的文件;

      6. -nogroup:        搜索不属于这个用户组的文件;

      7. -uid:               按照用户UID搜索;

      8. -gid:                按照用户GID搜索;

    2. 组合条件查询;
      1. -a:    与(and),同时满足两个条件,条件一不满足就不执行条件二;
      2. -o:    或(or),   两个条件只需要满足一个条件;
      3. -not:   非,两个条件的值取反;非A并且非B==非(A或B),非A或非B==非(A与B)
    3. -type:根据文件类型查找文件;
      1. f:    普通文件
      2. d:    目录文件
      3. b:    块设备文件
      4. c:    字符设备文件
      5. l:    符号链接文件
      6. p:    命令管道文件
      7. s:    套接字文件
    4. -size:根据文件大小查找文件。常用单位:G、M、k,注意M大写,k小写;
      1. -size -10k:    搜索文件大小小于10k的文件;
      2. -size 10M:    搜索文件大小为10M的文件;(#+1)>X>=#
      3. -size +10G:    搜索文件大小大于10G的文件;
    5. -time:根据文件时间查找文件;
      1. 以天为单位(time);
        1. -atime 10:     搜索10天前当天访问的文件;(#+1)>X>=#
        2. -mtime -10:    搜索10天内修改过的文件;
        3. -ctime +10:    搜索10天修改过文件属性的文件;
      2. 以分钟为单位(min);
        1. -amin 10:     搜索10分钟前当天修改的文件;(#+1)>X>=#
        2. -mmin -10:    搜索10分钟内修改过的文件;
        3. -cmin +10:    搜索10分钟前修改过文件属性的文件;
    6. -perm:根据文件权限查找文件;
      1. MODE:     精确匹配;
      2. +MODE:    任何一类用户任何一位权限匹配,常用于某类用户的某特定权限是否存在;
      3. -MODE:    每类用户指定的权限位都要匹配;
  2. find处理动作;
    1. -print:           打印在标准输出上;
    2. -ls:             以长格式输出各文件信息;
    3. -exec COMMAND \;:    对查找到的文件执行指定的命令,查找结果太多可能导致命令溢出;

      1
      [root@demo tmp]# find /tmp/ -perm -001 -type f -exec ls -l {} \;
    4. -ok COMMAND \;:      对查找到的文件交互式执行命令;
    5. find | xargs COMMAND:  对查找到的文件执行交互命令;
      1
      [root@demo tmp]# find /tmp/ -perm -003 -type f | xargs chmod o-wx
  3. find命令练习:
    1. 将/tmp/目录下所有文件后缀为xls的修改为xlsx;

      1
      2
      3
      4
      5
      6
      7
      8
      9
      [root@demo tmp]# ll
      -rw-rw-r-- 1 hadoop    hadoop    0 Jul 26 16:38 hadoop.doc
      -rwxr-xr-- 1 root      hadoop    0 Jul 29 21:50 hadoop.xls
      -rwxr-xr-x 1 openstack openstack 0 Jul 26 16:38 openstack.xlsx
      [root@demo tmp]# find /tmp/ -iname "*.xls" -exec mv {} {}x \;
      [root@demo tmp]# ll
      -rw-rw-r-- 1 hadoop    hadoop    0 Jul 26 16:38 hadoop.doc
      -rwxr-xr-- 1 root      hadoop    0 Jul 29 21:50 hadoop.xlsx
      -rwxr-xr-x 1 openstack openstack 0 Jul 26 16:38 openstack.xlsx
    2. 查找/tmp目录中属主为root且属组为hadoop的文件;
      1
      [root@demo tmp]# find /tmp/ -user root -a -group hadoop -ls
    3. 查找/tmp目录下不属于root、hadoop或bin的所有文件;
      1
      [root@demo tmp]# find /tmp/ -not -user root -not -user hadoop -not -user bin -ls
    4. 查找/var/log目录下最近一周内容修改过且不属于root或hadoop的文件;
      1
      [root@demo tmp]# find /var/log/ -mtime -7 -not -user root -not -user hadoop
    5. 查找当前系统没有属主或属组且最近一个月内被访问的文件;
      1
      [root@demo ~]# find / \(-nouser -o -nogroup\) -atime -30
    6. 查找/var/log目录下大于1M且类型为普通文件的所有文件;
      1
      [root@demo ~]# find /var/log/ -size +1M -type f
    7. 查找/etc/init.d目录下所有用户没有写权限的文件;
      1
      [root@demo ~]# find /etc/init.d/ -perm -222
    8. 查找/etc/init.d目录下至少一类没有写权限的文件;
      1
      [root@demo ~]# find /etc/init.d/ -perm +222
    9. 查找/etc/init.d目录下,所有用户都有执行权限及其他用户有写权限的文件;
      1
      [root@demo ~]# find /etc/init.d/ -perm -113
 

find命令学习的更多相关文章

  1. 别出心裁的Linux命令学习法

    别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关"的工作,以给你方便.效率.安全.操作系统的功能我总结为两点:管家婆和服务生: 管家婆:通过进程.虚 ...

  2. Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)

    简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...

  3. penghui_031413 Bat命令学习

    penghui_031413   Bat命令学习 基础部分:====================================================================== ...

  4. Linux命令学习

    Linux命令学习 Ubuntu常用快捷键 •Ctrl+Alt+T: 打开终端 •Ctrl+Shift+T: 新建标签页 •Tab: 终端中命令补全 •Alt+数字N: 终端中切换到第N个标签页 •↑ ...

  5. Linux的几个概念,常用命令学习

    Linux的几个概念,常用命令学习---------------------------------设备名装载点// 通过装载点访问设备-------------------------------- ...

  6. Java命令学习系列(7):Javap(转)

    原文出处: Hollis(@Hollis_Chuang) javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码. 一般情况下,很少有人使用javap对class文件 ...

  7. TCP/IP协议学习之实例ping命令学习笔记

    TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...

  8. south 命令学习

    south 命令学习 概述 在django某个版本之前,django自身提供一个创建数据库的命令-syncdb,它会根据model来创建相应的表,但是这个命令不好的地方在于,如果想要对model进行更 ...

  9. mondb 常用命令学习记录

    mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...

  10. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

随机推荐

  1. Html5 Canvas核心技术(图形,动画,游戏开发)--基础知识

    基础知识 canvas 元素可以说是HTML5元素中最强大的一个,他真正的能力是通过canvas的context对象表现出来的.该环境对象可以从canvas元素身上获得. <body> & ...

  2. 基于gulp 的前端自动化构建方案总结

    一,基础篇 先安装nodejs 使用淘宝镜像安装tnpm 安装 cnpm 插件:npm install -g cnpm --registry=https://registry.npm.taobao.o ...

  3. js获取url参数值,js获取其他页面传递而来的值

    index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&...... 静态html文件js读取url参数 根据获取html的参数值控制htm ...

  4. AxureRP8实战手册(基础1-10)

    基础操作篇 本篇包含56种常见的基础操作,初学者应在掌握本篇内容后再进行实战案例篇的学习,以免产生学习障碍.同时,建议具备一定基础的读者学习本篇中相对生疏的内容,并加以掌握. 第1章 使用元件 本文目 ...

  5. 在python中使用图形库matplotlib

    matplotlib is a python 2D plotting library which produces publication quality figures in a variety o ...

  6. ios基础篇(十一)——UINavgationController的使用(二)页面切换

    上篇说到了添加UIBarButtonItem,接下来说说界面切换: 1.首先我们在刚才的RootViewController中添加一个按钮用来实现跳转: 打开RootViewController.m( ...

  7. 介绍开源的.net通信框架NetworkComms框架之九 合并DLL

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  8. Selenium - CSS Selector

    Selenium - CSS Selector http://www.cnblogs.com/bugua/archive/2012/08/16/2641647.html   昨天我练习了用CSS(即层 ...

  9. 【Android】Android清除本地数据缓存代码

    最近做软件的时候,遇到了缓存的问题,在网上看到了这个文章,感觉不错.分享给大家看看 文章出处:http://www.cnblogs.com/rayray/p/3413673.html /* * 文 件 ...

  10. 1238. Folding

    http://acm.timus.ru/problem.aspx?space=1&num=1238 DP+记忆化搜索 思路不难,关键是最优结果的储存问题,为了编写方便,直接用string储存最 ...