• Linux之find查找命令


    Linux中find常见用法示例

    [root@localhost ~]# find  [PATH]  [option]  [action]

    参数:

    1. 与时间有关的参数:共有-atime、-ctime与-mtime,以-mtime为例:

    -mtime n:n为数字,意义为在n天之前的“一天之内”被更改过的文件;

    -mtime +n:列出在n天之前(不含n天本身)被更改过的文件名;

    -mtime -n:列出在n天之内(含n天本身)被更改过的文件名;

    -newer file:file为一个存在的文件,列出比file还要新的文件名。

    +n代表大于等于n+1天前的文件名;

    -n代表小于等于n天内的文件名;

    n则是代表n~n+1那一天的文件名。

    [root@localhost Desktop]# find  /  -mtime  0

    [root@localhost Desktop]# find  /etc  -newer  /etc/passwd

    2. 与用户或用户组名有关的参数:

    -uid  n:n为数字,这个数字是用户的账号ID,即UID。UID记录在/etc/passwd中

    -gid  n:n为数字,这个数字是用户组名的ID,即GID。GID记录在/etc/group中

    -user name:name为用户帐号名称

    -group name:name为用户组名称

    -nouser:寻找文件的所有者不存在于/etc/passwd中的文件

    -nogroup:寻找文件的所有用户组不存在于/etc/group中的文件

    注:

       如果系统里面某个账号删除了,该帐号在系统内已创建的文件即使用-nouser来查找。

    [root@localhost Desktop]# find  /home  -user  vurtne

    [root@localhost Desktop]# find  /  -nouser

    3. 与文件权限及名称有关的参数:

    -name filename:查找文件名为filename的文件

    -size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件。

    -type TYPE:查找文件的类型为TYPE的,类型主要有:

                一般正规文件(f),设备文件(b,c),目录(d),

                连接文件(l),socket(s)及FIFO(p)等属性。

    -perm mode:查找文件权限“刚好等于mode权限“的文件

    -perm -mode:查找文件权限“必须要全部包括mode权限“的文件

    -perm +mode:查找文件权限”包含任一mode权限“的文件

    [root@localhost Desktop]# find  /var  -type s

    [root@localhost Desktop]# find  / -perm +7000

    [root@localhost Desktop]# find  /bin  /sbin  -perm +6000

    4. 其他可进行的操作:

    -exec command {} :  #将查到的文件执行command操作,

                           对每一个找到的文件执行command命令,并用文件替换"{}",“;”是固定的结束符。

    -print:将结果打印到屏幕上

    [root@localhost Desktop]# find /  -perm  +7000  -exec  ls  -l  {}  ; 

    [root@localhost Desktop]# find  /  -size  +1000k

    [root@localhost Desktop]# find  /etc  -name  '*httpd*'

    [root@localhost Desktop]# find ./ -name '*.exe' -exec file {} ;  #找出当前文件夹下后缀是exe的文件,

                                                                       并用file命令显示 每个文件的文件类型

    -empty               #查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹

    -false               #查找系统中总是错误的文件

    -fstype type         #查找系统中存在于指定文件系统的文件,例如:ext2 .

    -gidn               #查找系统中文件数字组 ID 为 n的文件

    -depth                    #使查找在进入子目录前先行查找完本目录

    -fstype                   #查更改时间比f1新但比f2旧的文件

    -mount                    #查文件时不跨越文件系统mount点

    -follow                   #如果遇到符号链接文件,就跟踪链接所指的文件

    -cpio                     #对匹配的文件使用cpio命令,将他们备份到磁带设备中

    -prune                    #忽略某个目录

    -ok 和 -exec相同,只不过在操作前要询用户

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    ①通过文件名查找法:

     find / -name http.conf         在根目录下查找文件“httpd.conf”,就会得到这个文件的路径

    ②根据部分文件名查找法:

     find /etc -name '*.conf'       在/etc目录下查找以".conf"结尾的文件

    ③根据文件特征查找:

     如果只知道某个文件的大小,修改日期等特征也可以使用“find”命令查找出来。

     a.)  find / -size 1500c # 在根目录下查找大小为1500bytes的文件,字符c表明这个要查找的文件

                             大小以bytes为单位。

     b.)  find / -size +100c # 在根目录下查找大小超过100bytes的文件,命令中的“+”是表示要

                             求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小

                             于指定大小的文件。

     c.) find / -amin -10     # 查找在系统中最后10分钟访问的文件

     d.) find / -atime -2     # 查找在系统中最后48小时访问的文件

     e.) find / -empty        # 查找在系统中为空的文件或者文件夹

     f.) find / -group cat    # 查找在系统中属于组cat的文件

     g.) find / -mmin -5      # 查找在系统中最后5分钟里修改过的文件

     h.) find / -mtime -1     # 查找在系统中最后24小时里修改过的文件

     i.) find / -nouser       # 查找在系统中属于作废用户的文件

     j.) find / -user fred    # 查找在系统中属于FRED这个用户的文件

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    find命令也提供给用户一些特有的选项来控制查找操作。下面是一些最基本,最常用的find命令的控制选项及其用法。

    -daystart      # 测试系统从今天开始24小时以内的文件,用法类似-amin

    -depth         # 使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容

    -follow        # 遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询

    -help          # 显示命令摘要

    -mount         # 不在文件系统目录中查找, 用法类似 -xdev.

    -noleaf        # 禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找

    -version       # 打印版本数字

    -maxdepth levels     # 在某个层次的目录中按照递减方法查找,限制find命令在目录中按照递减方

                        式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找

                        速度变慢,查找花费的时间过多。

    find . -maxdepth 2 -name fred      # 限制find只能查找两层目录下的文件

    ④使用混合查找方式查找文件:

    通过"-and"把两个查找选项链接起来组合成一个混合的查找方式,在/tmp目录中查找大于100000000

    字节并且在48小时内修改的某个文件。

    find /tmp -size +10000000c -and -mtime +2

    通过"-or"把两个查找选项链接起来组合成一个混合的查找方式,在/目录中查找属于fred用户或者

    george用户的文件。

    find / -user fred -or -user george 

    find /tmp ! -user panda         # 在/tmp目录中查找所有不属于panda的文件

    find /tmp/ -ctime +7 -delete         # 删除/tmp目录下一周以前创建的文件

    ⑤查找并显示文件信息的方法:

     find / -name "httpd.conf" -ls

    ⑥无错误查找:

     find / -name access_log 2>/dev/null

     这个方法是把查找错误提示转移到特定的目录中。系统执行这个命令后,遇到错误的信息就直接输

     送到stderrstream 2中,access_log 2 就是表明系统将把错误信息输送到stderrstream 2

     中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,

     不会再显示了。

  • 相关阅读:
    623. Add One Row to Tree 将一行添加到树中
    771. Jewels and Stones 珠宝和石头
    216. Combination Sum III 组合总数三
    384. Shuffle an Array 随机播放一个数组
    382. Linked List Random Node 链接列表随机节点
    向github项目push代码后,Jenkins实现其自动构建
    centos下安装Jenkins
    python提取批量文件内的指定内容
    批处理实现:批量为文件添加注释
    python抓取每期双色球中奖号码,用于分析
  • 原文地址:https://www.cnblogs.com/vurtne-lu/p/6550611.html
Copyright © 2020-2023  润新知