• 一天一个Linux命令--find


    文件查找:(以find为主)
      which:查找命令字所在的位置
      locate:模糊匹配(只要包含关键字的文件都查找出来)
             不是实时的,基于数据库查找, updatedb升级locate数据库
             查找速度特别快

      find:查看文件或目录的工具
           实时查找
           精确查找
           遍历整个指定目录中的文件,速度很慢
           支持多种查找条件(属主,属组,权限,文件名等)
           语法: find [find_path] [条件] [处理动作]
           find_path:如果不写,默认在当前工作目录查找
           条件:如果不写,会查找出该路径下所有的文件处理动作:默认打印到屏幕上 print

        条件:(匹配标准)

           -name file_name:根据文件名进行查找,区分大小写
           -iname file_name:根据文件名进行查找,不区分大小写
           -regex PATTERN:根据正则表达式的模式进行查找
           -user:通过属主进行查找
           -group:通过属组进程查找
           -uid UID:通过UID号进行查找
           -gid GID:通过GID号进行查找
           -nouser:查找没有属主的文件
           -nogroup:查找没有属组的文件
           -type:根据文件类型进行查找
           -b:块设备
           -c:字符设备
           -d:目录
           -f:文件
           -p:命名管道
           -s:套接字文件
           -l:链接文件
           -size [+ | -] k m g
           -size 5k:精确匹配
           +:大于
           -:小于


           根据时间戳进行查找: # stat file_name  //查看文件的时间戳
           

             -atime:时间单位为天,access时间
             -mtime:时间单位为天,modify时间
             -ctime:时间单位为天,change时间
             -mmin:时间单位为分钟,modify时间
             -amin:时间单位为分钟,access时间
             -cmin:时间单位为分钟,change时间


           根据权限查找:
             -perm MODE:
                   MODE:644,精确匹配
                   /MODE:任意一位匹配
                   -MODE:文件权限能够完全包含此MODE时才能匹配

           条件组合:
             -a:同时满足多个条件,比如查找属主是tom并且权限为644的文件
             -o:满足一个条件即可,比如查找属主是tom或者权限为包含644的文件
             -not:不满足条件的被查找出来

           出来动作:
             -print:默认动作,默认查找结果打印到屏幕
             -ls:默认以类似于ls -l的形式显示结果的信息
             -ok COMMAND {} ;执行动作时提示用户是否执行,必须以;结尾,{}代表文件名占位符
             -exec COMMAND {} ;执行动作时不提示用户直接执行,必须以;结尾,{}代表文件名占位符


        查找条件通配符:
     *:通配任意个数的任意字符  

    # find /etc/ -name "pass*"

    # find /etc/ -name "*pass"
    ?:通配单个的任意字符     

     # find /etc/ -name "passw*"


    1、查找/var目录下属主为root并且属组为mail的所有文件;

    find /var -user root -a -group mail


    2、查找/usr目录下不属于root,bin,或student的文件;

    find /usr -not -user root -a -not -user bin -a -not -user student
    find /usr -not ( -user root -o -user bin -o -user student )


    3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;

    find /etc -mtime -7 -not  ( -user root -o -user student )
    find /etc -mtime -7 -not -user root -a -not -user student


    4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root;

    find / ( -nouser -o -nogroup ) -a -atime -1 -exec chown root:root {} ; 



    5、查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;

    find /etc -size +1M >> /tmp/etc.largefiles



    6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;

    find /etc -not -perm /222 -ls    
  • 相关阅读:
    20180530
    vue路由配置出错,导致页面跳转会有闪屏问题
    20180528
    vuecli+ivew项目搭建
    centos6安装mysql
    华为云服务ESC
    centos6安装nginx
    国产操作系统aarch64编译filebeat
    Python常见问题
    Git
  • 原文地址:https://www.cnblogs.com/mke2fs/p/10269027.html
Copyright © 2020-2023  润新知