初识linux下的find命令

1.认识find命令

关于find命令,本人认为是linux当中所有的命令当中最重要的一个命令之一,所以,在这里,我们来聊一聊find命令。

find命令用于在目录下查找文件,find是在磁盘上进行查找,所以相对来说,效率会低一些。

首先,给出find命令所有的参数
-amin<分钟>:查找在指定时间存取过的文件或者目录,单位以分钟计算。
上述就显示了我15分钟内存取过的文件或者目录,这里说的是被访问,参考的是atime
这里写图片描述

-anewwr<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录
同样,这个也是说的存取时间是atime为参考对象。
这里写图片描述

-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算。

这里写图片描述
注意这里也是说的是24小时同样根据访问时间来看的,atime为基本来看,

-cmin<分钟>:查找在指定的时间之时被更改过的文件或目录。
这个命令对应着amin。这里cmin是相对于ctime而言的。
这里写图片描述
-daystart :从本日开始计算时间
这里写图片描述
-depth:从指定目录下最深层次的子目录开始寻找
这里写图片描述
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
例如:
这里就是把find找到的所有普通文件,用ls -l 的方式打出来

这里写图片描述

-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;

查找的结果放入了文件当中。
这里写图片描述
-follow:排除符号连接;
我们会发现加上follow以后它会把软链接所指向的内容find出来。
这里写图片描述
这里写图片描述
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;

-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
可以把find到的内容写入文件当中,然后它们的区别就是fprint每次一个路径都会后面加个换行符,fprint0不加。
这里写图片描述
这里写图片描述

-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;

-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
可以通过
-group<群组名称>: 查找符合指定之群组名称的文件或目录;
更具对应的群组的不同进行find
这里写图片描述
-help或——help:在线帮助;
此命令的具体文档帮助。
这里写图片描述
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;

-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;

-inum < inode编号 > :查找符合指定的inode编号的文件或目录
这里写图片描述
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
这里写图片描述

-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
这里写图片描述
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
同样的,这个命令是按照mtime为基本来查看的。
这里写图片描述
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
这里写图片描述
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
这里写图片描述
-nogroup:找出不属于本地主机群组识别码的文件或目录;
比如说在一个场景下,你的一个用户组被删除了,那么这个用户组相关的残余文件,这个时候你为了更好的管理它,那么这个时候就需要你去找到它,然后再做出相关的操作。

-nouser:找出不属于本地主机用户识别码的文件或目录;
这个命令可以对应的相对于上面的nogroup,这个是相对与用户来说

-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
这里写图片描述
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
关于上述的两个命令会有一个区别,对于print 输出完以后会添加一个换行符,而print0没有添加。
这里写图片描述
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;

-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:查找符合指定的文件大小的文件;
这里写图片描述

-type<文件类型>:只寻找符合指定的文件类型的文件;
b - 块文件
d - 目录文件
c - 字符设备文件
p - 管道文件
l - 链接文件
f - 普通文件
这里写图片描述
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
这里写图片描述
-version或——version:显示版本信息;
find 命令书写的相关信息。
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。

2.总结

关于find指令,内容真的很多,作为一个刚开始学习的小白,还是需要多加练习,find是在磁盘上进行搜索,所以效率相对来说是低一些的,当然,快一些的搜索命令还是有的,不过也有它的弊端,所以,当然我们最多使用的就是find指令了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章