Linux 常见搜索命令

2020-01-05  本文已影响0人  djz0306

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
上一篇 下一篇

猜你喜欢

热点阅读