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结束的标记,而\ 是转义字符。

Linux文件检索的更多相关文章

  1. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  2. < 独立项目 - 文本挖掘 > - 2016/10/25 第一更 - <Linux相关知识准备>

    < 独立项目 -  文本挖掘 > 项目立项的相关背景介绍,TODO方向. 一.Ubuntu环境配置 主机系统:Windows 7 SP1  64位操作系统 | i5-4210 CPU | ...

  3. Linux磁盘与文件系统概念理解

    磁盘级别概念     这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起.如图1所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每 ...

  4. linux下常用网页查看下载工具--wget

    http://www.linuxidc.com/Linux/2015-06/118256.htm 5 个基于Linux命令行的文件下载和网站浏览工具 rTorrent.wget.cURL.w3m.El ...

  5. Linux下文件查找命令find笔记

    在Linux命令下如果需要快速自己系统所需要处理的文件,可以通过find命令快速进行检索. 如果想在某个路径下查找相应的文件可以执行如下命令: find path -name filename # p ...

  6. Linux curl 命令详解

    命令概要 该命令设计用于在没有用户交互的情况下工作. curl 是一个工具,用于传输来自服务器或者到服务器的数据.「向服务器传输数据或者获取来自服务器的数据」 可支持的协议有(DICT.FILE.FT ...

  7. linux 详解

    一.日常使用命令/常用快捷键命令开关机命令        1.shutdown –h now:立刻进行关机 2.shutdown –r now:现在重新启动计算机 3.reboot:现在重新启动计算机 ...

  8. Linux文本处理详细教程

    1. 文本处理 本节将介绍Linux下使用Shell处理文本时最常用的工具: find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk: 提供的例子和参数都是 ...

  9. 【linux系统】命令学习(五)linux三剑客 grep \ awk \ sed

    grep----基于正则表达式查找满足条件的行 1.内容检索 获取行 grep pattern file 获取内容 grep -o pattern file 获取上下文grep -A -B -C pa ...

随机推荐

  1. oracle 优化or 更换in、exists、union all几个字眼

    oracle 优化or 更换in.exists.union几个字眼.测试没有问题! 根据实际情况选择相应的语句是.假设指数,or全表扫描,in 和not in 应慎用.否则会导致全表扫描.  sele ...

  2. stl综合

    区别: List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]. Vector ...

  3. (转)The C10K problem翻译

    The C10K problem 如今的web服务器需要同时处理一万个以上的客户端了,难道不是吗?毕竟如今的网络是个big place了. 现在的计算机也很强大了,你只需要花大概$1200就可以买一个 ...

  4. vue---computed计算属性的使用

    一直以来在使用vue的时候,会对vue的computed属性和watch属性具体的使用分不清楚,总算花点时间整理了下. computed:通常用于监控自己定义的变量,这个变量可以不再data中定义,直 ...

  5. nodejs electron 创建桌面应用

    //首先安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org //使用cnpm进行安装,使用方法和npm相同 cn ...

  6. js中 switch 注意事项

    var x = "2"; // 字符串 “2” switch (x) { case 1: console.log('x 等于1'); break; case 2: // 数值 2 ...

  7. laravel安装一直报错

    laravel安装一直报错 原因: 1.找到php版本是否对应 2.缺少第三方扩展库vendor 需要composer update 解决链接:https://learnku.com/docs/lar ...

  8. oracle 存储过程分页

    将分页的存储过程封装到包中,包规范 create or replace package pkg_query as type cur_query is ref cursor; PROCEDURE prc ...

  9. bash 脚本。find 命令,xargs

    rm 排除指定文件或文件夹 rm -r !(.git) find 命令两个用法 find <指定目录> <指定条件> <指定动作> $ find . -name ' ...

  10. __super:: 使用

    它会调用 基类的函数方法实现. __super::Close(); __super::Find();