zoukankan      html  css  js  c++  java
  • find命令使用指南

    本文参考:https://www.cnblogs.com/johnnyliu/archive/2013/04/09/3010384.html
    https://www.cnblogs.com/Ido-911/p/9638612.html
    https://www.cnblogs.com/qiaopei/p/5515189.html

    一直知道find命令的查找功能很强大,但从来没有进行系统性的学习,今天有时间正好学习一下!

    find命令的基本组成:find pathname -option [-print -exec -ok]

    • pathth:find命令的查询根路径,也可以通过参数 -path参数指定

    • -option

    一、文件操作选项

    -name 要查找的文件名

    示例:
    find /home/sifang/bin -name startcsgc 在/home/sifang/bin目录下查找名称为startcsgc的文件

    -type 指定查找的文件类型
    • b 块设备文件
    • d 目录
    • c 文字设备文件
    • p 管道文件
    • l 符号链接文件
    • f 普通文件

    示例:
    find /home/sifang/bin -type f -name startcsgc 在/home/sifang/bin目录下查找名称为startcsgc的文件
    find /home/sifang -type d -name bin 在/home/sifang目录下查找名称为bin的文件夹

    -size n 指定文件大小,数字前+表示大于,-表示小于,常用单位c(字节),k(KB),M(MB)

    示例:
    find /home/sifang/bin -size +1M -type f | wc -l 查找大小大于1M的文件并统计个数
    find /home/sifang/bin -size -10M -type f |wc -l 查找大小小于10M的文件并统计个数
    find /home/sifang/bin -size +1M -and -size -10M -type f | wc -l 查找大小在[1M ,10M ]区间内的文件并统计个数。

    二、时间选项

    -atime n 最近访问过(accessed)的文件,单位为天

    -amin n 最近访问过的文件,单位为分钟(minute)

    -ctime n / -cmin n 最近状态改变过(changed)的文件

    -mtime n / -mmin n 最近内容修改过(modified)的文件

    -newer file ! otherfile 查找更新时间比file新的文件,加上!表示查找比otherfile旧的文件

    示例:
    find /home/sifang/bin -amin +10 -type f 十分钟前访问过的文件
    find /home/sifang/bin -amin -10 -type f 最近十分钟内访问的文件
    find /home/sifang/bin -amin +10 -and -amin -20 -type f,以当前时间为基准,在20分钟以内10分钟之前时间段访问过的文件
    find /home/sifang/bin -newer a ! b 查找修改时间比a新但比b旧的文件

    补充
    linux系统中文件的三个时间,access time访问时间、modify time 修改时间、change time 状态变化时间,对于新建的文件,三个时间是相同的,可以通过stat 和ls命令查看。
    stat filename,三个时间都显示
    ls -lc filename 显示文件的change time
    ls -lu filename 显示文件的access time
    ls -l filename 显示文件的modify time

    三、用户权限

    -perm ddd 用户权限permission,通常用三位数字表示权限如644,ddd前+表示至少有一种指定的权限,-表示必须包括指定的所有权限

    示例:
    find ./ -perm 777 -type f -exec ls -l {}; 查找权限为777的文件

    -user / -group 按文件属主、属组来查找文件

    -nouser / -nogroup 查找没有有效属主/ 属组的文件,即该文件的属主在/etc/passwd文件中不存在

    四、文件路径

    -path 给出文件路径。可在路径中查询,可以用于指定查找路径的子路径,结合-prune指出要忽略的子目录

    -depth 先匹配所有的文件,再在子目录查找

    -maxdepth n,设定递归搜索的目录层级,1为当前目录,表示不递归搜索。

    -prune指要忽略的目录,结合-path选项使用,忽略-path指定的目录。

    示例:
    find ./ -prune

    五、查询结果执行

    -exec command

    command以;为结束标志,其中是为了避免各个系统中;的不同意义,{}代表前面find查找出来的文件名。
    示例:
    find ./ -name aa -type f -exec ls -l {} ; 在当前目录查找aa文件,并显示其详细信息。
    find ./ -type f -mtime +14 -exec rm {} ; 在当前目录查找14天之前修改的文件,并删除它们。

    -ok command,功能同-exec,区别在于ok选项在执行命令时有交互式提示,提示你是否执行,是一种相对安全的做法。

    示例:
    find ./ -name aa -type f -ok ls -l {} ;

    xargs 通常与管道连用,对匹配的文件执行操作。

  • 相关阅读:
    归并排序
    二分查找
    分治 递归 引用 求一个数组中的最大和最小元素
    插入排序
    Poj 2503
    SELinux 基础命令
    Zend Framework中的MVC架构
    phpfpm详解
    CentOS 6 minimal 安装
    php 5.3.3 中的phpfpm配置
  • 原文地址:https://www.cnblogs.com/21summer/p/9487220.html
Copyright © 2011-2022 走看看