今天继续分享linux常用命令,搜索相关命令,首先来看第一个命令
一 find :搜索文件或目录
语法: find [搜索范围] [匹配条件]
1 find /etc -name init 在etc目录下搜索名字为init的文件或目录,如下:
我们看到了相应的搜索结果,但是这只是搜索确定名字的文件或目录,如果我想搜索文件名中包含init的怎么办呢,很简单,用*号即可
*号代表任意字符,?代表单给字符,比如我们想搜索init后面跟着四个字符的文件或目录
这里可以看到结果了,我们知道linux是严格区分大小写的,那么如果我想搜索INIT的文件,需要用-iname,-iname表示不区分大小写,比如我先创建一个INIT的文件,然后搜索它
我们看到成功搜索到了。
2 find / -size +204800 在根目录下搜索大于100M的文件,+n代表大于,-n代表小于,=n代表等于
n的一位代表512个字节,也就是0.5k,100M就是102400k,换算成n就是204800了,如下:
我们看搜索到了大于100M的文件
3 find /home -user fuqiang1 搜索home目录下所有者为fuqiang1的文件或目录
find /home -group fuqiang1 搜索home目录下所属组为fuqiang1的文件或目录
4 find /etc -cmin -5 查找etc目录下5分钟之内被修改过属性的文件和目录
-amin 代表访问时间 -cmin代表文件属性 -mmin代表文件内容
5 -type 根据文件类型查找,f代表普通文件,d代表目录,l代表软连接文件
6 -inum 根据i节点查找
7 find /etc -size +163840 -a -size -204800
在etc下查找大于80M,小于100M的文件
-a代表两者同时满足
-o代表两个满足一个即可
8 find . -name fuqiang.list -exec ls -l {} \;
搜索当前目录下文件名为fuqiang.list的文件,然后直接ls -l命令列出详细信息
-exec/-ok 对执行结果进行操作,-exec直接操作,-ok会先询问
好了,find命令常用方法就介绍到这里,下面看第二个命令
二 locate:在文件资料库中查找文件
用法:locate inittab
那么这个locate跟find有什么不同呢,locate是在文件资料库中查找,也就是不是真正在磁盘上查找,这样速度会快很多,那么这个文件资料库在哪里呢,我们执行locate locate看一下
这里我们看到一个mlocate.db的文件,这个就是文件资料库,linux系统会定期把文件的资料同步到这里,下面看一个问题,比如我新建一个文件,然后locate这个文件,分两种情况,我先在tmp下建一个文件
我们发现在tmp路径下的文件查不到,这是因为这个路径下的文件不会被放到文件资料库中,那么我在其他目录下建一个文件
怎么依然locate不到呢,是因为新建的文件并不会立刻被同步到文件资料库中,那么我们执行updatedb,新建的文件就会同步进去了
我们看到搜索结果了,如果不区分大小写呢,用-i
好了,locate命令就介绍到这里,看下一个命令