Linux常用命令(十八) - find概述

Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只要你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

1.命令格式:

find pathname -options [-print -exec -ok ...]

2.命令功能:

用于在文件树种查找文件,并作出相应的处理

3.命令参数:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

-print: find命令将匹配的文件输出到标准输出。

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

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

4.命令选项:

-name   按照文件名查找文件。

-perm   按照文件权限来查找文件。

-prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-user   按照文件属主来查找文件。

-group  按照文件所属的组来查找文件。

-mtime -n +n  按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

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

-newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。

-type  查找某一类型的文件,诸如:

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

f - 普通文件。

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount:在查找文件时不跨越文件系统mount点。

-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

-amin n   查找系统中最后N分钟访问的文件

-atime n  查找系统中最后n*24小时访问的文件

-cmin n   查找系统中最后N分钟被改变文件状态的文件

-ctime n  查找系统中最后n*24小时被改变文件状态的文件

-mmin n   查找系统中最后N分钟被改变文件数据的文件

-mtime n  查找系统中最后n*24小时被改变文件数据的文件

5. 命令实例:

实例一:查找指定时间内修改过的文件

命令:find -atime -2

说明:查找48小时内修改过的文件

实例二:根据关键词查找

命令:find . -name "*.log"

说明:在当前目录查找以.log结尾的文件。 ". "代表当前目录

[[email protected] test]# find . -name "*.log"
./log_link.log
./log2014.log
./test4/log3-2.log
./test4/log3-3.log
./test4/log3-1.log

实例三:按照目录或文件的权限来查找文件

命令:find /opt/soft/test/ -perm 777

说明: 查找/opt/soft/test/目录下权限为777的文件

实例四:按类型查找

命令:find . -type f -name "*.log"

说明:查找当目录,以.log结尾的普通文件

实例五:查找当前所有目录并排序

命令:find . -type d | sort

实例六:按大小查找文件

命令:find . -size +1000c -print

说明:查找当前目录大于1K的文件

时间: 2024-11-09 22:20:29

Linux常用命令(十八) - find概述的相关文章

Linux常用命令(十八)

磁盘管理 1.df 查看磁盘分区使用状况 l:仅显示本地磁盘(默认) a:显示所有文件系统的磁盘使用情况,包含比如/proc/ h:以1024进制计算最合适的单位显示磁盘容量 H:以1000进制计算最合适的单位显示磁盘容量 T:显示磁盘分区类型 t:显示指定类型文件系统的磁盘分区 x:不显示指定类型文件系统的磁盘分区 2.du 统计磁盘上的文件大小 b:以byte为单位统计文件 k:以KB为单位统计文件 m:以MB为单位统计文件 h:按照1024进制以最合适的单位统计文件 H:按照1000进制以

Linux经常使用命令(十八) - find概述

Linux下find命令在文件夹结构中搜索文件,并运行指定的操作.Linux下find命令提供了相当多的查找条件,功能非常强大.由于find具有强大的功能,所以它的选项也非常多.当中大部分选项都值得我们花时间来了解一下. 即使系统中含有网络文件系统( NFS).find命令在该文件系统中相同有效,仅仅要你具有对应的权限. 在运行一个非常消耗资源的find命令时.非常多人都倾向于把它放在后台运行,由于遍历一个大的文件系统可能会花费非常长的时间(这里是指30G字节以上的文件系统). 1.命令格式:

Linux常用命令(八)LVM逻辑卷管理

一.LVM概述     LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性. 需要注意的是,"/boot"分区不能基于LVM创建,必须独立出来. 1.pv(PhysicalVolume,物理卷) 物理卷是LVM机制的基本存储设备,通常对应一个普通分区或整个硬盘.创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用

Linux常用命令(十九) - find之exec

find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠. {}   花括号代表前面find查找出来的文件名. 使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的.在有些操作系统中只允许-ex

Linux常用命令(十二) - less

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.使用了 less 时,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜. 1.命令格式: less [参数]  文件 2.命令功能: less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个

Linux常用命令(十) - nl

nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能. 1.命令格式: nl [选项]... [文件]... 2.命令参数: -b  :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n): -b t :如果有空行,空的那一行不要列出行号(默认值): -n  :列出行号表示的方法,主要有三种:

Linux常用命令(十五) - which

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which  查看可执行文件的位置. whereis 查看文件的位置. locate   配合数据库查看文件位置. find   实际搜寻硬盘查询文件名称. 1.命令格式: which 可执行文件名称 2.命令功能: which命令的作用:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果.也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令.

Linux常用命令(十六) - whereis

whereis命令只能用于程序名的搜索(程序安装在哪?),而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高.但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在

Linux常用命令(十六)

管道符 1.多命令顺序执行 多命令执行符 格式 作用 ; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系 && 命令1&&命令2 逻辑与 当命令1正确执行,命令2才会执行 当命令2执行不正确,则命令2不会执行 要么两个都执行,要么两个都不执行 || 命令1||命令2 逻辑或 当命令1执行不正确,则命令2才会执行 当命令1正确执行,则命令2不会执行 2选1执行 管道符 格式 作用 | 命令1|命令2 命令1的正确输出作为命令2的操作对象 小提示: 1.more命令