zoukankan      html  css  js  c++  java
  • Linux文件检索


    title: Linux文件检索
    date: 2017-12-11 19:03:01
    tags: linux
    categories: linux


    whereis

    只要执行

    whereis ls
    

    就可以搜索到“ls”命令和它的帮助文档的位置。
    但它只能搜索man手册、二进制文件和源代码文件。

    which

    which是一个比whereis更简单的命令,通常用来判断是否安装某个软件,它只在$PATH环境变量中指定的路径中搜索

    $ which pacman
    /usr/bin/pacman
    

    find

    最强大的搜索命令
    find []path...] [expression]

    -print 输出检索结果
    -exec 对匹配的文件执行shell命令

    比如要搜索3天前当天发生变化的所有文件

    $ find / -mtime 3
    

    搜索3天内发生变化的所有文件

    $ find / -mtime -3
    

    搜索3天以前发生变化的所有文件

    $ find / -mtime +3
    

    类似的查找条件还有

    参数 作用
    -user username 按所有者名查找
    -group gname 文件属于gname
    -nouser 文件没有有效的所有者,即文件的
    -name filename 按文件名检索
    -atime n 最近访问时间(天)
    -amin n 最近访问时间(分钟)
    -anewer file 最近访问时间(比file修改时间要晚)
    -ctime n 按文件创建时间查找
    -mtime n 按文件修改时间查找
    -empty 空文件或空目录
    -size n 按照文件大小查找
    -type b/c/d/p/f/l/s/ 查找块文件/字符文件/目录/命名管道/普通文件/符号链接/套接字
    -maxdepth n 最大查找深度
    -mindepth n 最小查找深度
    -prune pathname 忽略一个目录

    例如要在test目录下查找不在test4目录下的文件

    $ find test -path "test/test4" -prune -o -print
    

    -o 可以理解为or
    上述表达式的伪码表述是

    if -path == "test/test4"
    	-prune
    else
    	-print
    

    -exec是要对找到的文件执行的动作

    find . -mtime -1 -exec ls -l {} ;
    

    上述命令列出当前目录下一天内变化的文件的详细信息,ls -l很容易理解,{}是一个占位符,在find执行过程中不断替换为当前找到的文件,后面的exec结束的标记,而 是转义字符。

  • 相关阅读:
    Informix日期获取上周上月昨天去年SQL
    Oracle-创建一个DBLink的方法
    Kafka-Partitions与Replication Factor 调整准则
    Linux-删除文件空间不释放问题解决
    Redhat7-Oracle-sqlldr-安装配置
    Centos7-安装oracle客户端11.2.0.4
    Centos7-单机安装jumpserver
    Redhat6.4-yum本地源安装配置
    Linux-zip unzip 命令日常使用
    xxl-job日志
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/8025054.html
Copyright © 2011-2022 走看看