zoukankan      html  css  js  c++  java
  • find in linux

    find命令的作用是在目录中根据文件名搜索文件
    find 列出当前目录及其子目录的所有文件和文件夹的完整路径。
    find -name Help.java 在当前目录及其子目录中搜索文件名为Help.java的文件。
    find . -name Help.java 在当前目录及其子目录中搜索文件名为Help.java的文件(同上)。
    find / -name Help.java 在整个硬盘中搜索文件名为Help.java的文件。
    find -perm 755 在当前目录及其子目录中查找指定权限的文件
    find -type b 在当前目录及其子目录下查找块设备文件。
    find -type d 在当前目录及其子目录下查文件夹。
    find -type c 在当前目录及其子目录下查找字符设备文件。
    find -type p 在当前目录及其子目录下查找管道文件。
    find -type l 在当前目录及其子目录下查找符号链接文件。
    find -type f 在当前目录及其子目录下查找普通文件。
    find -type d -exec ls -l {} ; 查找当前目录及其子目录下的文件夹,并将查找结果以ls -l的方式展现。
    find -type d -ok rm -rf {} ;查找当前目录及其子目录下的文件夹,并将查找结果依次执行rm -rf命令,但是在执行命令前会有确认提示。

    find . -type f  ( -name "*.class" -o -name "*.sh"  )                           查找多个文件,注意( 和 ) 前后的空格

    find . -type f  ( -name "a.class" -o -name "b.sh"  )                           查找多个文件,注意( 和 ) 前后的空格

    find . -type f  -exec ls -l {}  ;                                                         注意后面的;

    find . -name  "*.log" -exec cp {}  test3 ;

    find  /tmp/   -path "/tmp/123"  -prune -o -type f  -print                   查找/tmp下所有文件时,排除指定的文件或者目录,这里是排除掉 /tmp/123

    find  /tmp/  ( -path "/tmp/123" -o -path "/tmp/234" -o -path "/tmp/345" )  -prune -o -type f -print               排除多个文件或目录

    find ./cache  ! -name  '*.html'  -type f                                               查找cache目录下不是html的文件

    # 在当前目录,排除 out 目录, 且查找不是*.c×  *.h*   *.*o*   *.a   *.xml   *.java   *.d* 类型的所有文件。注意 "./out" 里的这 ./ 很重要
    $ find
    . -path "./out" -prune -o ! -name "*.c*" ! -name "*.h*" ! -name "*.*o*" ! -name "*.a" ! -name "*.xml" ! -name "*.java" ! -name "*.d*" -type f
    # 通俗的解释就是: 查找不是 out 目录,或者是文件的东西,但排除文件:*.c× *.h* *.*o* *.a *.xml *.java *.d*
    # 在当前目录,排除 out 目录, 且查找不是 *.xml *.java 类型, 但是文件名字为 makefile 或 *.mk  或  *.sh 或 *config 的所有文件。 注意 "./out" 里的这 ./ 很重要
    find
    . -path "./out" -prune -o -iname "makefile" -o -iname "*.mk" -o -iname "*.sh" -o -iname "*config" ! -iname "*.xml" ! -iname "*.java" -type f

    查找`2013-08-08`到`2013-09-01`号之间的文件,使用如下命令即可:

    find /log/ -name 'production.log-2013*' -newermt '2013-08-08' ! -newermt '2013-09-0

    找出 3 天”以前”被改动过的文件:

    find /var/log/ -mtime +3 -type f -print

    找出 3 天內被改动过的文件:

    find /var/log/ -mtime -3 -type f -print

    找出当前时间以前的第 3 天被改动过的文件:

    find /var/log/ -mtime 3 -type f -print

    找出第 3 天被改动过的文件:

    find /var/log/ -mtime +2 -mtime -4 -type f -print

    查找10分钟之内被修改过的文件:

    find . -mmin -10

    查找当前文件夹下的文件(不包括目录),要求这些文件在20分钟之内被修改过,且文件名不是 "*.o"   "*.cmd"  这种结尾的文件:

    find . -mmin -20 ! -name "*.o" ! -name "*.cmd"  -type f

    查看文件中的一段文字,输出到标准输出:

    # 打印从第 20 行开始到第 60 行结束的所有行

    sed -n '20,60p;61q' file_name                    # 一般显示终端只能显示40行,所以就显示40行就可以了

  • 相关阅读:
    POJ2983Is the Information Reliable
    POJ2706Connect
    POJ1716Integer Intervals
    js Number 转为 百分比
    c# Unicode编码
    json datatable
    分割js 数组
    IQueryable定义一个扩展方法。分页
    sql 计算岁数
    sql 获取一个周的周一和周日
  • 原文地址:https://www.cnblogs.com/welhzh/p/3792617.html
Copyright © 2011-2022 走看看