linux学习之路之文本的查找---find命令的使用

文本的查找可以使用两种方式来实现,即使用locate命令来查找和find命令来查找

那么这两种方式有什么区别呢?

locate:是一种非实时查找,所谓非实时查找就是查找的不够实际,不够精确。因为locate查找是在

系统文件数据库中进行的,而数据库默认是一天更新一次,也就是说你查找的文件再数据库

更新之前查找的话,有可能找不到文件,因为那时数据库还没有去读取硬盘上的文件,所以

有些文件没有写入到数据库中。

可以收到更新数据库,使用命令updatedb

因为不上在硬盘上读取,因此速度快

locate是一种模糊匹配方式

由于locate使用的并不是很多,因此只是简略的介绍了一下。

另一种文件的查找方式,使用find命令来查找(递归查找方式)

find命令:是一种实时查找,他可以精确的匹配某个文件,支持众多匹配标准,它是通过遍历整个目录

下的文件来进行查找的,因此速度慢

语法格式:find 查找的路径 匹配标准  查找到以后的处理动作

查找路径:默认是当前目录

匹配标准:默认是当前目录下的所有文件

处理动作:默认是将结果显示在屏幕上来

匹配标准:

-name FILE:对文件名做精确匹配(这里也可以使用文件名通配符来匹配文件)

-iname FILE:匹配文件名时不区分大小写

-regex PATTTERN:根据正则表达式来进行文件名匹配

-user USERNAME:根据属主来查找文件

-group GROUPNAME:根据属组来查找文件

-uid UID:根据uid来查找文件

-gid GID:根据gid来查找文件

-nouser :查找没有属主的文件

-nogreoup:查找没有属组的文件

-type  根据文件类型来查找

-f 普通文件

-d 目录文件

-l 链接文件

-c  字符设备文件

-b  块设备文件

-p  管道文件

-s  套接字文件

-size  根据文件大小来查找

[+|-] [#k | #M | #G]:+表示大于,-表示小于

说明:如果不加+或-,则表示在该[#k | #M | #G]内的都匹配

在匹配条件时,也可以组合匹配条件

-a:与关系

-o:或关系

-not:非关系

根据时间戳来匹配

-atime [+|-]#:根据文件的访问时间来匹配文件(单位是天)

-mtime [+|-]#:根据文件的修该时间来匹配文件

-ctime [+|-]#:根据文件的改变时间来匹配文件

+:表示至少#天没有[访问|修改|改变]过

-:表示#天内[访问|修改|改变]过

不加+或-:表示正好在第#天[访问|修改|改变]过

-amin:意义同上,只不过单位为分钟

-mmin:

-cmin:

-perm 根据权限来匹配文件

MODE:和这个权限一致的文件才匹配(精确匹配)

-MODE:文件权限包含此权限才符合条件

/MODE:只需要匹配文件中(九位权限中的)一位权限就匹配成功

处理动作

-print :显示到屏幕上

-ls :类似ls -l的形式显示该文件的详细信息

-ok COMMAND {} \; 对查找到的文件使用命令处理(使用该命令需要确认)

-exec COMMAND {} \; 同上,{}是引用前面已经找到的文件

linux学习之路之文本的查找---find命令的使用,布布扣,bubuko.com

时间: 2024-08-14 00:08:53

linux学习之路之文本的查找---find命令的使用的相关文章

linux学习之路及文本查看和文本处理命令

这一篇主要介绍几个常用的文本查看命令和文本处理命令. 首先介绍文本查看命令 cat:用于连接文件并显示 说明:当只有一个文件时,则用于查看文件内容:当有多个文件时,cat命令会将这些文件连接起来,在一起显示出来 语法格式:cat [option] FILE... -n:显示内容的时候把行号显示出来 -E:显示每一行的结束符$符(默认不显示) tac:也是用于显示文件内容,只不过他是将文件的内容倒过来显示,与cat相反 -n:显示行号 -E:显示每一行结尾的结束符$ 分屏操作命令 more与les

linux学习之路之vim编辑器的使用

本章将介绍vim编辑器的使用 vim编辑器是vi编辑器的增强版 vim是一种全屏的编辑器,是一种模式化的编辑器,之所以称为模式化的编辑器,因为vim有多种模式. 接下来将介绍vim主要的三种模式: 编辑模式(也叫命令模式):在该模式下你可以完成字符串跳转,字符串删除,翻屏操作等操作 输入模式:在该模式下输入的任何字符都会保存在该文件中,作为文件的一部分 末行模式:在该模式下,可以实现字符串搜索,字符串替换等操作 vim编辑器的三种模式之间的相互转换 模式转换: 编辑模式-->输入模式 i:在当前

linux学习之路之磁盘管理和文件系统三

ext3文件系统和ext2文件系统的区别? 在某些时候,某个用户在linux系统上写入数据,这时系统正好断电或者系统核心出现错误,写入的数据仅有inode table和datablock而已,可能会导致之前写过的数据没有保存在磁盘上.而当系统重启后,系统可能会对没有保存的数据进行数据恢复.但是,由于系统并不知道是哪个文件不完整,因此会遍历整个文件系统中inode,来查看block是否完整.不过,当某个文件的数据太大时,数据的恢复时间可能会比较长,而这对于服务器来说是不利的.所以在这种情况下,也就

linux学习之路之目录管理和文件管理

我们知道linux文件系统是一个树型结构,在最上层是'/'目录,根目录的下面就是其他目录,而这些目录下面又可以有多个子目录,这样一层一层的就形成一个树型结构图.那是不是我们查找某一个文件必须要从根目录开始往下查找的呢?当然不是,在这里我将会介绍两种路径方式:相对路径和绝对路径. 什么是相对路径和绝对路径? 绝对路径:就是从'/'根目录开始往下一级一级的查找,直到目的所经过的线路. 相对路径:就是相对当前位置而言来找到目的地所经过的线路. 目录的创建 mkdir:用于创建目录 语法格式:mkdir

linux学习之路之bash及其特性

我们知道当我们用鼠标点击,或输入一个命令,系统就玩帮我们完成一个任务,那么当我们点击一个链接时,系统由是如何知道要去完成相应的操作呢?这是因为通过shell来完成的. 那么什么是shell呢? shell就是用户和操作系统之间的一个接口,通过这个接口shell接受来自用户的命令,并调用相应的应用程序来呼叫kernel来处理相应的工作. 在linux系统上面存放着多种类型的shell,这些shell存放在/etc/shells文件里,默认RedHat使用的shell为bash 下面介绍一些bash

linux学习之路之手动编译内核

手动编译内核 一般来说,内核的核心功是直接在内核里,其他大多数功能具有以下三种选择: 1.不使用该功能 2.将这些功能编译成模块的形式 3.将这些功能直接编译进内核当中 那么该如何手动编译内核呢? 手动编译的方式: 使用make gconfig命令,不过使用该命令适用于Gnome桌面环境,且需要安装图形开发库 使用make kconfig命令,该命令适用于KDE桌面环境,且需要安装图形开发库 不过最常见的方式是使用make menuconfig命令来编译,使用该命令会产生一个窗口界面 在该窗口下

linux学习之路之目录结构

FHS的产生 我们知道目前linux的发行版本很多,如果每一个发行版本,它的目录层次结构都不相同的话,那么当管理员去管理其他的linux主机时,就会不知多措了.而且在开发过程中,如果每一个程序员都按照自己的想法去存放的数据的话,那么其他的程序员想去查找别人的数据文件时,这是问题就来了,因为文件系统中存放了那么多的数据,谁知道你把数据存放在哪儿了?因此,需要一个标准来规范,这样每个人都按照这种规范去存放.查找数据等操作,这样,当其他人如果需要去查找的话,就会简单多了. FHS:全称为文件系统目录标

linux学习之路之LVM

试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来.等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小.虽然这种方法可行,但是效率低,比较复杂.不应该是我们首选的方法. 当然,我们可以这样做,将多个磁盘或者分区(PV)组合

linux学习之路之LVM的快照功能

我们知道LVM可以弹性的调整文件系统的大小,其实LVM除了可以调整文件系统的大小之外,还有另一个功能就是系统快照. 所谓系统快照就是将某一时刻文件系统中的信息记录到快照区中,这里的某一时刻指的是在原始数据被改变的那一瞬间,原始数据会移到快照区里.而其他没有改变的数据,快照区和文件系统共享.所以刚建立快照时快照区内容和文件系统的内容一样. 由于我们知道只有改变的数据才会移动到快照区,因此快照区中保存的内容比较少. 快照区的原理图如下: 那么如何建立快照区呢? 使用lvcreate -s命令来创建快