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 ls
which 除了可以查到命令所在的路径也可以查看是否具有别命,例如查找到 rm='rm -i'
whereis
whereis 和 which 比较像,也适用于搜索命令,但是可以提供命令帮助文档,基本语法为:
whereis ls
grep
grep 很常用,用于在文件中搜索字符串匹配的行并输出,可以用 -i 不区分大小写,用 -v 排除指定字符串,基本语法如下:
grep mysql /root/install.log
网友评论