Linux下常用的find指令以及其他查找命令

来源:互联网 发布:淘宝左轮手抢制作零件 编辑:程序博客网 时间:2024/05/17 03:12

首先顾名思义“find”就是查找的意思,那么接下来说一下find指令的重要性吧,因为在Linux操作系统”一切皆文件“的理念下,我们已经不是靠文件的后缀名来识别一个文件了。这时候你要想找到一个特定的文件就变得相对困难了,那么你有必要了解一个find这个强大的指令了。


find命令的格式:find [指定的目录] [查找规则] [查找到后进行的操作]
1、根据文件名来查找
-name :区分大小写
-iname : 不区分大小写
这里写图片描述
2、按照文件的权限来匹配
-perm : 一般使用八进制的权限表示
例如
find -perm 700:查找-rwxrwxrwx的文件
find -perm 662:查找-rw-rw-r– 的文件
这里写图片描述
3、按照文件的类型来查找
-type:
b : 块设备文件(磁盘)
d:目录文件
c:字符设备文件
p:管道文件
l:符号链接文件
f:普通文件
这里写图片描述

4、根据文件的大小来查找
-size

find -size +5000c 表示查找大于5000个字节的文件
find -size -20c 表示查找小于20个字节的文件
加上c是表示以字节数。
这里写图片描述
也可以直接通过find -size +4000c -size -4500c更加精确的找到文件
这里写图片描述

5、根据时间相关的属性来查找

通过stat可查看文件的下面三个时间,详情请看上篇文章。
-atime:最后一个访问文件的时间
-mtime:最后一次改变文件内容的时间
-ctime:最后一次改变文件属性的时间

-amin
-mmin
-cmin
这三个是以分钟为单位来查找的,具体实现如下:
find -atime +1 :一天内没有被访问过的文件
find -atime -1 : 一天内被访问过的文件
这里写图片描述

6、执行操作
-print:将匹配的文件输出到标准输出。
-exec:对匹配的文件执行所给出的shell命令。-exec ‘command’ {} \;
_ls:将匹配的文件用ls显示出来
-ok:和-exec相似,只不过在执行前询问是否执行,较为安全。

find -name “file1” -print
这里写图片描述
find -name “file1” -ls
这里写图片描述
find -size +4000c -size -4500c –exec rm –rf {} \;
这里需要特别说明一下,{}代表查询后匹配的文件,还有需要注意{}和\之间的空格
这里写图片描述
这里可以看到file1文件已经被删除了。


上面就是关于find命令的介绍,但事实上,在大多数情况下,我们是用不到find这个命令的,原因就是find查找太慢了。下再来稍微总结一下几个常见的查找命令之间的优点和缺点

  • whereis:是用来查找特定的文件的
-m:查找二进制文件-b:查找在说明文件manual路径下的文件-s:查找source源文件-u:查找不属于上述三个选项的特殊文件

比如我只想查找有关passwd的说明文件,这时候就可以加-m的参数:
这里写图片描述
这样直接很直接说明whereis这个命令,就是想要查找某些特定的文件

  • locate
-i:忽略大小的区别-r:后面可以直接跟正则表达式

这个命令的使用非常简单快捷,因为它是在已创建好的数据库(var/lib/mlocate)中查找数据的,所以速度非常快,但是相应的就会有自己的弊端,比如你刚创建的一些文件还没来得及写入数据库,这时候你查找就是显示该文件不存在这样的情况。
其实这时候你可以运行updatedb命令来更新数据库,不过可能得等一两分钟。
这里写图片描述
这里我第一次查找passwd文件失败,更新数据库前后的样子,可以看一下,便于理解。

  • which
-a:所有由path路径可以找到的命令,而不是第一个

这里有几个需要注意的地方,用实例来说明
1、查找which文件:
这里写图片描述
这里看到,找到两个which,上面的那个其实是命令别名,就像你日常使用的ll命令其实是ls -l,只不过使用了命令别名而已。

2、查找cd的完整文件名
这里写图片描述
哈哈,竟然说没找到,这是怎么一回事啊,其实是因为cd这个命令是bash内置的命令,并不在path指定的路径下,所以就找不到了。

上面就是linux下常见的查找方面的文件了,起初是总结一下find的,后来接触到更多,就加在后面了。

最后补充一点,whereis和locate是在数据库中查找的,所以非常快速,比较常用,而find是检索整个硬盘,准确性相对较高,但相对的就是速度慢啦。

1 0
原创粉丝点击