Linux 常见搜索命令

find

find 用于搜索文件,基本语法为:

find [搜索范围] [匹配条件]

-name

-name 即按照文件名搜索,例如:

find /etc -name init

与 Windows 不同的是,这是精准搜索,例如 init0 不会被搜索出来。如果需要匹配包括 init 的字符,则可以使用通配符,例如:

find /etc -name *init*

星号可以匹配任意字符,?可以匹配任意字符。

-iname

-name 会对文件进行精确匹配,包括大小写,如果需要忽略大小写则需要使用 -iname

-size

-size 用于按文件大小查找,单位是数据块,即 0.5K,例如要查找根目录下大于 100M 的文件,则使用

find / -size +204800

其中 + 表示大于,-表示小于,不写表示等于

-user , -group

-user 用于查找指定所有者的文件,例如:

find /home -user zhangsan

如果要查找指定组的文件,可以使用 -group

-amin,-cmin,-mmin

这三个命令用于按时间查找,-amin 对应访问时间,-cmin 对应文件属性,-mmin 对应文件内容,例如:

find /home -mmin -5

指在 home 目录下 5 分钟内被更改锅文件内容的文件,如果是超过 5 分钟则使用 +5

-a 与 -o

-a 表示 and ,用于表示两个条件同时满足,-o 表示 or,两个条件满足其中一个的文件

-type

-type 用于指定文件类型,f 表示文件,d 表示目录,l 表示软链接,例如:

find /home type f

用于查看 home 下的所有文件

-exec/-ok 命令 {} ;

-exec/-ok 命令 {} \;用于对搜索结果执行操作 -ok 与 -exec 的区别为 -ok 会询问是否确认

-inum

用于查看指定 inode 的文件。例如查找硬链接,可以指定 inode 以后在对应分区查找即可查到所有该文件的硬链接

locate

locate 是在文件资料库中查找,所以速度很快。基础语法为:

locate 要查找的文件名

在 /var/lib/mlocate/mlocate.db 中的文件信息会定期更新收录其中。但是由于不是实时更新的,所以查找最新的文件可能会找不到,如果要找到最新的文件可以使用 updatedb 更新最新文件信息。但是如果文件在 /tmp 目录下,也是查找不到的,因为这不属于其收录范围。locate 的资源消耗也要小很多。

-i

locate 查找也是严格区分大小写的,如果需要不区分大小写,也可以使用 -i,例如

locate -i test

which

which 用于查找命令,搜索出命令所在目录以及别命信息,基本语法为:

which 命令

例如 which lswhich 除了可以查到命令所在的路径也可以查看是否具有别命,例如查找到 rm='rm -i'

whereis

whereis 和 which 比较像,也适用于搜索命令,但是可以提供命令帮助文档,基本语法为:

whereis ls

grep

grep 很常用,用于在文件中搜索字符串匹配的行并输出,可以用 -i 不区分大小写,用 -v 排除指定字符串,基本语法如下:

grep mysql /root/install.log
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 乘坐在去外地出差的高铁上,同车厢里有一位年轻的爸爸抱着自己的小宝宝在车厢里往来踱步,小宝宝时不时发出咿咿呀呀的笑声...
    青屏子阅读 1,423评论 0 1
  • 过去走在湖边,能踏出扬起的尘埃,风天一脚土,雨天 全是一脚泥,草是杂草一片,长的树也没章法,没有形状,莲湖碧波荡漾...
    萧然魅力刑阅读 2,801评论 0 0
  • 相思月 朦胧月,伤心夜,何人独知吾之意,只留滴酒滴空自流。 ...
    深蓝叔叔阅读 3,846评论 0 3