zoukankan      html  css  js  c++  java
  • find

    1、搜文件
    find / -name filename
    2、在某个目录(如/home)下查找文件file
    find /home -name file
    3、过滤报错搜文件
    find / -name access_log 2>/dev/null
    4、模糊文件名查找
    find /etc -name '*srm*'
    5、使用and ,or 分别表示“与”和“或”的关系
    a、在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件
    find /tmp -size +10000000c -and -mtime +2
    b、在/tmp目录中查找属于fred或者george这两个用户的文件
    find / -user fred -or -user george
    6、使用“非”的关系来查找文件
    a、在/tmp目录中查找所有不属于panda的文件
    find /tmp ! -user panda
    7、查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息
    find / -name "httpd.conf" -ls
    -exec command 查找并执行命令
    -fprint file 打印文件完整文件名
    -fprint0 file 打印文件完整文件名包括空的文件
    -fprintf file format 打印文件格式
    -ok command 给用户命令执行操作,根据用户的Y 确认输入执行
    -printf format 打印文件格式
    -ls 显示同种文件格式的文件

    -amin n 查找系统中最后N分钟访问的文件
    -atime n 查找系统中最后n*24小时访问的文件
    -cmin n 查找系统中最后N分钟被改变状态的文件
    -ctime n 查找系统中最后n*24小时被改变状态的文件
    -empty 查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
    -false 查找系统中总是错误的文件
    -fstype type 查找系统中存在于指定文件系统的文件,例如:ext2 .
    -gid n 查找系统中文件数字组 ID 为 n的文件
    -group gname 查找系统中文件属于gnam文件组,并且指定组和ID的文件
    8、 find / -amin -10 # 查找在系统中最后10分钟访问的文件
    find / -atime -2 # 查找在系统中最后48小时访问的文件
    find / -empty # 查找在系统中为空的文件或者文件夹
    find / -group cat # 查找在系统中属于 groupcat的文件
    find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
    find / -mtime -1 #查找在系统中最后24小时里修改过的文件
    find / -nouser #查找在系统中属于作废用户的文件
    find / -user fred #查找在系统中属于FRED这个用户的文件
    9、查找文件大小为1,500 bytes
    find / -size 1500c (字符 c 表明这个要查找的文件的大小是以bytes为单位)
    10、查找出大于10000000字节的文件并显示出来
    find/ -size +10000000c (命令中的“+”是表示要求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件)

    11、在当前(.)目录技巧子目录中查找一个名叫fred的文件(最大的查询目录级别为2)
    find . -maxdepth 2 -name fred
    -daystart 测试系统从今天开始24小时以内的文件,用法类似-amin
    -depth 使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
    -follow 遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询
    -help 显示命令摘要
    -maxdepth levels 在某个层次的目录中按照递减方法查找
    -mount 不在文件系统目录中查找, 用法类似 -xdev.
    -noleaf 禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
    -version 打印版本数字
    12、删除以r开头的大小为0的文件命令
    find . -name "r*" -type f -size 0c | xargs -n 1 rm -f
    ====================
    1 命令格式:
    $ find <指定目录> <指定条件> <指定动作>
    最常见示例:查找文件名(忽略大小写)
    $find . -iname sqlquery.java
    1.1 <指定目录>:
    所要搜索的目录及其所有子目录。默认为当前目录。find默认递归指定目录。目录可以有多个,目录之间要用空格分开。

    [admin@r42h06016.xy2.xxx.com]$find /etc /tmp /root -name passwd
    1.2 <指定条件>:
    所要搜索的文件的特征。

    [1]根据文件名查找
    -name 按照文件名查找
    -iname 根据文件名查找,但是不区分大小写
    -prune 不在当前指定的目录中查找
    -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
    [2]根据文件所属用户和组来查找文件
    -user 按照文件属主来查找文件

    $find / -user fred //查找在系统中属于FRED这个用户的文件
    -group 按照文件所属的组来查找文件
    $find / -group cat //查找在系统中属于group组名cat的文件
    [3]根据uid 和 gid来查找用户
    -uid
    #find /tmp -uid 500 //查找uid是500 的文件
    -gid
    #find /tmp -gid 1000 // 查找gid是1000的文件
    [4]-a,-o,-not的使用
    -a 连接两个不同的条件(两个条件必须同时满足)
    #find /tmp -name "*.sh" -a -user root
    -o 连接两个不同的条件(两个条件满足其一即可)
    #find /tmp -name "*.sh" -o -user root
    -not 对条件取反的
    #find /tmp -not -user root
    [5]根据文件时间戳的相关属性来查找文件
    -atime 最近一次访问时间 单位:天
    -mtime 最近一次内容修改时间 单位:天
    -ctime 最近一次属性修改时间 单位:天
    -amin 最近一次访问时间 单位:分钟
    -mmin 最近一次内容修改时间 单位:分钟
    -cmin 最近一次属性修改时间 单位:分钟
    -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件
    #find /tmp -atime +5 //表示查找在五天内没有访问过的文件
    #find /tmp -atime -5 //表示查找在五天内访问过的文件
    [6]根据文件类型来查找文件
    -type 查找某一类型的文件
    文件类型:
    f 普通文件
    d 目录
    l 符号链接文件
    c 字符设备文件
    p 管道文件
    b 块设备文件
    s socket文件
    #find /tmp -type s
    [7]根据大小来查找文件
    -size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
    #find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
    #find /tmp -size +2M //查找在/tmp 目录下大于2M的文件
    #find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
    $find . -size +1000000c //在当前目录下查找文件长度大于1 M字节的文件
    $find / -empty //查找在系统中为空的文件或者文件夹
    [8]根据文件权限查找文件

    -perm
    #find /tmp -perm 755 //查找在/tmp目录下权限是755的文件
    #find /tmp -perm +222 //表示只要有一类用户(属主,属组,其他)的匹配写权限就行
    #find /tmp -perm -222 //表示必须所有类别用户都满足有写权限
    [10]-nouser和-nogroup
    -nogroup 查找无有效所属组的文件,即该文件所属的组不存在
    -nouser 查找无有效属主的文件
    #find / -nogroup -a -nouser //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)
    $find / -nouser //查找在系统中属于作废用户的文件
    1.3 <指定动作>:
    对搜索结果进行特定的处理。
    -print //默认情况下的动作
    -ls //查找到后用ls 显示出来
    -ok [commend] //查找后执行命令的时候询问用户是否要执行
    -exec [commend] //查找后执行命令的时候不询问用户,直接执行
    注意-ok和-exec命令将命令行上后续的参数作为他们参数的一部分,直到被;序列终止。魔术字符串{}是-ok和-exec命令的一个特殊类型的参数,它将被当前文件的完整路径取代。

    #find /tmp -atime +30 –exec rm –rf {} ; //删除查找到的超过30天没有访问过文件
    这里要注意{ }的使用:替代查找到的文件
    #find /tmp -name "*.old" | xargs chmod 700
    2 命令举例
    搜索/etc目录下的文件名包含del的文件。

    $find /etc -name '*del*'
    系统查找到"config.py"文件后即时在屏幕上显示"config.py"文件信息。
    $find . -name "config.py" -ls
    搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。
    $ find . -type f -mmin -10

    find ./ ! -name "*.gz" ! -name '.'|xargs rm -fr 

  • 相关阅读:
    Go数据类型之复合数据类型--数组
    linux系统编程面试题
    各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵
    欧氏距离和曼哈顿距离
    SpringCloud-Zuul源码分析和路由改造
    TiDB注意事项
    Littleproxy的使用
    HBase 架构与工作原理5
    HBase 架构与工作原理2
    HBase 架构与工作原理3
  • 原文地址:https://www.cnblogs.com/sprinng/p/5576880.html
Copyright © 2011-2022 走看看