zoukankan      html  css  js  c++  java
  • 我用过的linux命令 find——2018-08-30

    find命令

    参考

    • 语法:

    find pathname -option [-print] [-exec -ok command] {} ;

    • 功能:用于在文件树中查找文件,并做出相应的处理
    • 参数:
      • pathname: find命令所查找的目录路径,其中.表示当前目录,/表示系统根目录
      • -print: 经匹配的文件输出到标准输出
      • -exec: find对匹配的文件执行该参数所给出的shell命令,需要注意 {};之间有空格
      • -ok: 和 -exec的作用相同,只不过以一种更安全的模式来执行该参数给出的 shell 命令,在执行每一个命令前,都会给出提示,让用户来确定是否执行。
    • 命令选项:
      -name: 按照文件名查找文件
      -perm: 按照文件权限来查找文件
      -user: 按照文件属主来查找文件
      -group: 按照文件所属的组来查找文件
      ---------------------------------------------------------------------------------------------------------------------
      -mtime -n +n: 按照文件的更改时间来查找文件,-n表示文件更改时间距离现在 n 天以内+n表示文件更改时间距离现在 n 天以前
      -atime n: 查找系统中最后 n*24小时被访问(access)的文件
      -amin n: 查找系统中最后 n 分钟被访问(access)的文件
      -ctime n: 查找系统中最后n*24小时被改变文件状态(chmod)的文件
      -ctmin n: 查找系统中最后 n 分钟被改变文件状态(chmod)的文件
      -mtime n:查找系统中最后n*24被改变文件数据的文件
      -mmin n: 查找系统中**最后 n 分钟被改变文件数据的文件 **
      -------------------------------------------------------------------------------------------------------------------------
      -nogroup: 查找无有效所属组的文件,即该文件所属的组在 /etc/groups中不存在
      -nouser: 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在
      -newer file1 ! file2: 查找文件更改时间比 file1 但是比 file2 旧的文件
      -------------------------------------------------------------------------------------------------------------------------
      -type:查找某一类型的文件,比如:
      -type b: 块设备文件
      -type d: 目录
      -type c: 字符设备文件
      -type p: 管道文件
      -type l: 符号连接文件
      -type f: 普通文件
      -------------------------------------------------------------------------------------------------------------------------
      -size n[c]: 查找长度为 n 块的文件,带有 c 表示文件长度以字节计
      -depth: 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
    • 使用实例:
      • 在当前目录查找后缀为 log 的文件
      find -name "*.log" 
      
      • 按照目录或文件的权限来查找文件: 查找权限为777的文件
      find /opt/soft/test -perm 777
      
      • 按照文件大小查找文件: 查找当前目录大于1K的文件
      find . -size +1000c -print
      

    **********************************************************************************************************
    **********************************************************************************************************
    当使用find查找出后,还可以进一步的操作,这里用到 exec

    • -exec参数后面跟command 命令,其终止是以;为结束标志的,所以这句话后面的分号;是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加上反斜杠;
    • 花括号{}代表前面find查找出来的文件名
    • 使用实例:
      • ls -l命令放在find命令的-exec选项中 : find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
      find . -type f -exec ls -l {} ;
      
      • 在目录中查找更改时间在n日以前的文件并删除它们
      find . type f -mtime +14 -exec rm {} ;
      
      在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。
      • 在目录中查找更改时间在n日以前的文件并删除它们,在删除之前先给出提示
      find . -name "*.log" -mtime +5 -ok rm {} ;
      
      在上面的例子中, find命令在当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 按y键删除文件,按n键不删除。
      • 嵌入使用 grep 命令
      find /etc -name "passwd*" -exec grep "root" {} ;
      
      find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个root用户。
      • 查找文件移动到指定目录
      find . -name "*.cpp" -exec mv {} ./test ;
      
      • 用exec选项执行cp命令
      find . -name "*.cpp" -exec cp {} ./test ;
      
  • 相关阅读:
    ASP.NET Web API 框架研究 Self Host模式下的消息处理管道
    ASP.NET Web API 框架研究 Web Host模式下的消息处理管道
    ASP.NET Web API 框架研究 核心的消息处理管道
    ASP.NET Web API 框架研究 Web Host模式路由及将请求转出到消息处理管道
    ASP.NET Web API 框架研究 ASP.NET Web API 路由
    ASP.NET Web API 框架研究 ASP.NET 路由
    ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)
    MVVM模式
    RESTful Web API 理解
    C# 函数式编程及Monads.net库
  • 原文地址:https://www.cnblogs.com/qiulinzhang/p/9562934.html
Copyright © 2011-2022 走看看