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 

  • 相关阅读:
    Python动态展示遗传算法求解TSP旅行商问题
    MOEAD算法中均匀权向量的实现---Python
    HDU 5294 多校第一场1007题 最短路+最小割
    POJ 3261 Milk Patterns sa+二分
    HDU 4292 FOOD 2012 ACM/ICPC Asia Regional Chengdu Online
    CodeForces 201A Clear Symmetry
    POJ 1679 The Unique MST 确定MST是否唯一
    POJ 3268 Silver Cow Party 最短路 基础题
    POJ 2139 SIx Degrees of Cowvin Bacon 最短路 水題
    POJ2229 Sumsets 基礎DP
  • 原文地址:https://www.cnblogs.com/sprinng/p/5576880.html
Copyright © 2011-2022 走看看