Linux中的Find指令是Linux系统中很重要也是很棒的指令之一,功能很是得强大。下面我根据实例代码向你们分享find指令。因为博客上没法贴出Linux代码,我就在截图中体现出代码,以及效果。正则表达式
我先本身建立了文件名的test.c的普通文件,咱们用指令mkdir,以及ls查看已经建立了test.c.shell
如今咱们查找它。ide
根据文件名或者正则表达式查找:-name 经过文件名字查找spa
文件名:
3d
1)find ./ -name test.c 查找文件名为test.c的文件code
2)find 。/ -name 'test.c*' 查找文件名包括test的文件blog
正则表达式:ci
1)find 用 “!”来否认参数 .get
find ./ ! -name '*.c' -print 查找文件名不为.c的文件,并打印出来。(实际后面的-print可要可不要,效果都会显示在屏幕上)
博客
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大的文件
2)find ~ -size -100k 查找比100k小的文件
3)find ~ -size 100k 查找大小为100k的文件
注意: – 指比给定尺寸小,+ 指比给定尺寸大。没有符号表明和给定尺寸彻底同样大。
3.根据文件深度查找
使用mimdepth,maxdepth限定搜索指定目录的深度。
-depth:在查找文件时,首先先查找当前的目录中的文件,而后在其子目录中查找。
1)find ./ -name test 在root目录以及子目录下查找文件名为test的文件
2)find -maxdepth 2 -name test 在root目录以及深度为1的子目录中查找文件名为test的文件
3)find -mindepth 1 -maxdepth 5 -name test 在深度为0的子目录以及深度为5的子目录中查找文件
名为test的文件
4.根据文件权限查找文件
-perm 按照文件的权限来查找文件。
1)find -perm -g=w 找到具备组读权限的文件
5.根据文件类型查找文件。
-type 查找某一类型的文件。诸如:
文件类型 类型参数
普通文件 f
符号文件 l
目录 d
字符设备 c
块设备 b
套接字 s
管道文件 p
1)find
. -
type
d 查找类型为目录的文件
6.根据文件时间来查找
Linux文件系统中每个文件都有三种时间戳:
(1)访问时间(-atime):用户最近一次访问文件的时间;
(2)修改时间(-mtime):文件内容最后一次被修改的时间。
(3)变化时间(-ctime):文件元数据(metadata,例如权限或全部权)最后一次改变的时间。
-atime,-mtime,-ctime做为时间参数,单位是天。可使用+表示大于,-表示小于(和根据文件的大小查找中的+,-相同)。
咱们在这里只针对-mtime举例子了,其余两个时间戳也是同样的。
1)find ./ -mtime -5 查找小于等于5天内修改过的文件
2)find ./ -mtime +2 查找大于2天前修改过的文件
3)find ./ -mtime 1 查找1天前,当天修改过的文件
4)find ./ -newer test.c 查找比test.c还要新的文件