zoukankan      html  css  js  c++  java
  • linux之find命令详解

    用法

      find [path] 内容

    参数

      -print: find命令将匹配的文件输出到标准输出
      -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。

        find -exec rm -rf {} ;  将找到的文件删除
      -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 

        [root@mysql test]# find -ok rm -rf {} ;   
        < rm ... . > ? y  删除之前先询问

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

      -maxdepth 指定最多查找几层

         find -maxdepth 1  不对当前目录下的子目录进行查找

         find -maxdepth 2  只对当前目录下的一级目录进行查找

    按文件名称查找

      -name 支持通配符

    查找以“.sh结尾的文件”
    [root@mysql ~]# find -name '*.sh' ./tar.sh [root@mysql ~]#

     按文件时间戳查找

      -mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

      -atime    -n +n                #按文件访问时间来查

      -ctime    -n +n                #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

      -mmin   -n +n                #按文件更改时间来查找文件,-n指n分钟以内,+n指n分钟以前

      -amin    -n +n                #按文件访问时间来查

      -cmin    -n +n                 #按文件创建时间来查找文件,-n指n分钟以内,+n指n分钟以前

    [root@mysql ~]# find -cmin -4   查找4分钟内创建的文件
    .
    ./hhh
    [root@mysql ~]# find -ctime +3   查找3天创建的文件
    ./.cshrc
    ./.bashrc
    ./.bash_profile
    ./.bash_logout
    ./anaconda-ks.cfg
    ./install.log.syslog
    ./.tar
    ./tar.sh
    [root@mysql ~]# 

    按文件类型查找

      -type   d/l/b/c/f/s

    [root@mysql ~]# find -maxdepth 1 -type d   查看当前目录下都有哪些文件夹
    .
    ./test
    ./.subversion
    [root@mysql ~]#

    按文件的属主,属组查找

      -nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在
      -nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存

      -user    username             #按文件属主来查找
      -group groupname            #按组来查找

    按文件权限查找

      -perm

    [root@mysql ~]# find -perm 600 -exec ls -l {} ;    查找当前文件下权限为600的文件并以长格式显示
    -rw------- 1 root root 49 11? 3 18:57 ./.lesshst
    -rw-------. 1 root root 21820 11? 3 16:22 ./.bash_history
    -rw------- 1 root root 19599 11? 1 01:38 ./.mysql_history
    -rw------- 1 root root 5125 11? 3 00:18 ./.viminfo
    -rw-------. 1 root root 1087 6? 13 21:14 ./anaconda-ks.cfg
    [root@mysql ~]#

    按文件的大小查找

      -size [-/+]n

      'b' for 512-byte blocks (this is the default if no suffix is used)

      'c' for bytes

      'w' for two-byte words

      'k' for Kilobytes (units of 1024 bytes)

      'M' for Megabytes (units of 1048576 bytes)

      'G' for Gigabytes (units of 1073741824 bytes)

    [root@mysql ~]# find -size +20000c    查找大于20000c字节的文件
    ./.bash_history
    ./install.log
    [root@mysql ~]# 
    [root@mysql ~]# find -size 20000c    查找刚好20000c字节的文件
    [root@mysql ~]# find -size -20000c   查找小于20000c字节的文件

    查找的时候排除某个目录

       find /root/ -path "/root/test" -prune -o -print  查找除了/root/test目录之外的/root目录下的文件

    查找的时候排除多个目录

    [root@BASE test]# pwd 
    /root/test
    [root@BASE test]# tree
    .
    |-- aaa
    |-- test1
    |   `-- 1
    |-- test2
    |   `-- 2
    `-- test3
        `-- 3
    
    3 directories, 4 files
    [root@BASE test]# find /root/test/ ( -path "/root/test/test1" -o -path "/root/test/test2" ) -prune -o -type f -print
    /root/test/aaa
    /root/test/test3/3
    [root@BASE test]# 

    查找的时候排除某一类文件

      “!”表示非

    [root@mysql ~]# find -maxdepth 1 ! -name ".*"  显示不是隐藏属性的文件
    ./test
    ./hhh
    ./install.log
    ./EOF
    ./test2
    ./anaconda-ks.cfg
    ./install.log.syslog
    ./tar.sh
    [root@mysql ~]# 
  • 相关阅读:
    Linux route
    python 实现自定义切片类
    python 自省机制
    python 实例方法、静态方法、类方法
    python 动态语言和协议编程
    python 鸭子类型
    信息论
    CRF keras代码实现
    CRF 详细推导、验证实例
    attention 汇总(持续)
  • 原文地址:https://www.cnblogs.com/along1226/p/4937235.html
Copyright © 2011-2022 走看看