Linux中的Find指令是Linux系统中很重要也是很棒的指令之一,功能非常得强大。下面我根据实例代码向大家分享find指令。由于博客上无法贴出Linux代码,我就在截图中体现出代码,以及效果。


我先自己创建了文件名的test.c的普通文件,我们用指令mkdir,以及ls查看已经创建了test.c.

【Linux】Linux系统下find指令详细用法与示例

现在我们查找它。

  1. 根据文件名或者正则表达式查找:-name   通过文件名字查找


文件名:

1)find ./ -name test.c   查找文件名为test.c的文件


【Linux】Linux系统下find指令详细用法与示例


2)find 。/ -name 'test.c*'  查找文件名包括test的文件


【Linux】Linux系统下find指令详细用法与示例


正则表达式:

1)find 用 “!”来否定参数 .

find ./ ! -name '*.c' -print    查找文件名不为.c的文件,并打印出来。(实际后面的-print可要可不要,效果都会显示在屏幕上)

【Linux】Linux系统下find指令详细用法与示例


2)如果想匹配多个条件中的一个,可以使用-o参数。

-a  与条件

-o  或条件

-not 非条件(此参数的功能类似于否定参数‘!’)

2.根据文件大小查找


通过-size选项可以通过文件大小查找文件。


-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

b——块(512字节); c——字节; w——字(2字节);

k——千字节 ; M——兆字节; G——吉字节。


1)find ~ -size +100k    查找比100k大的文件

【Linux】Linux系统下find指令详细用法与示例


2)find ~ -size -100k     查找比100k小的文件

【Linux】Linux系统下find指令详细用法与示例


3)find ~ -size  100k     查找大小为100k的文件

注意: – 指比给定尺寸小,+ 指比给定尺寸大。没有符号代表和给定尺寸完全一样大。

3.根据文件深度查找

使用mimdepth,maxdepth限定搜索指定目录的深度。

-depth:在查找文件时,首先先查找当前的目录中的文件,然后在其子目录中查找。

1)find ./  -name test   在root目录以及子目录下查找文件名为test的文件

【Linux】Linux系统下find指令详细用法与示例


2)find -maxdepth 2 -name test    在root目录以及深度为1的子目录中查找文件名为test的文件

【Linux】Linux系统下find指令详细用法与示例


3)find -mindepth 1 -maxdepth 5 -name test    在深度为0的子目录以及深度为5的子目录中查找文件

名为test的文件

【Linux】Linux系统下find指令详细用法与示例


4.根据文件权限查找文件

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

1)find -perm -g=w 找到具有组读权限的文件

【Linux】Linux系统下find指令详细用法与示例

5.根据文件类型查找文件。

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

文件类型   类型参数
 普通文件    f
 符号文件    l
 目录       d
 字符设备    c
 块设备     b
 套接字     s
 管道文件    p

1)find . -type d 查找类型为目录的文件

【Linux】Linux系统下find指令详细用法与示例


其他类型的文件就可以按照上述命令来查找了。

6.根据文件时间来查找


Linux文件系统中每一个文件都有三种时间戳:

(1)访问时间(-atime):用户最近一次访问文件的时间;

(2)修改时间(-mtime):文件内容最后一次被修改的时间。

(3)变化时间(-ctime):文件元数据(metadata,例如权限或所有权)最后一次改变的时间。


-atime,-mtime,-ctime作为时间参数,单位是天。可以使用+表示大于,-表示小于(和根据文件的大小查找中的+,-相同)。


我们在这里只针对-mtime举例子了,其他两个时间戳也是一样的。

1)find ./ -mtime -5   查找小于等于5天内修改过的文件

【Linux】Linux系统下find指令详细用法与示例


2)find ./ -mtime +2   查找大于2天前修改过的文件


【Linux】Linux系统下find指令详细用法与示例


3)find ./ -mtime 1   查找1天前,当天修改过的文件

【Linux】Linux系统下find指令详细用法与示例


4)find ./ -newer test.c   查找比test.c还要新的文件

【Linux】Linux系统下find指令详细用法与示例