1-4·Linux中搜索命令有哪些?

来源:互联网 发布:超级直播软件apk 编辑:程序博客网 时间:2024/05/29 16:55

一·locate

1)locate 文件搜索与find比,搜索速度快
(find相当于从根开始搜索)
2)locate 文件名 (在var/lib/mlocate的数据库中进行搜索,但是mlocate这个数据库不是实时更新的,每天更新一次,所以新建文件找不到。缺点:只可以按照文件名搜索,find就比较强大)
updatedb 命令会强制更新数据库,所以可以找得到新文件

安装locate > yum install mlocate
updatedb 手动更新数据库

PRUNE_BIND_MOUNTS = "yes" (开启搜索限制)PRUNEFS = (不搜索的文件系统)PRUNENAMES = (不搜索的文件类型)PRUNEPATHS = (不搜索的路径)

这是那个配置文件/etc/updatedb.conf中的内容(前面提到的那个情况:更新locate数据库后但找不到新建的文件)原因是可以看updatedb.conf配置文件,如果是yes,此配置文件中定义的文件规则全都生效,否则不生效。此文件中共有四句话,后三句话规则都是不搜索啥。当为yes时,后三条规则生效,则系统执行不搜索动作。

二·whereis&which

1)文件搜索命令:whereis
特点:用于搜索命令所在的路径以及帮助文档所在的位置,不能搜索用户自己创建的文件等信息。
选项:
-b:只查找可执行文件
-m:只查找帮助文件

2)文件搜索命令:which
特点:能看到命令的路径,如果有别名,还能看到别名的说明。
whereis和which不能看到内部命令,只能看到外部安装的命令。

3) $PATH说明:类似于Windows中的环境变量,执行命令的时候都要在path定义的目录中去寻找。所以像ls这样的命令就可以不用加路径(/bin/ls)执行了。

echo $PATH               //查看当前环境变量

三·find命令

1)find搜索(避免大范围的搜索,会非常浪费系统资源,建议不在直接在“/”目录下搜索)
格式:find 【搜索范围】【搜索条件】;

例:find /home -name 文件名;
注意:find搜索默认是完全匹配。

如果需要进行模糊查询,需要添加通配符,通配符有以下3种 “*”匹配任意字符,例:find /home -name
test”,显示所有名字带test的文件;或例:find /home -name “*”,home目录下的所有文件,包括隐藏文件。
“?”匹配任意一个字符, “[]”匹配任意一个中括号内的字符,例:find /home -name
“test[12]”,显示test1和test2文件;或find /home -name “[12]*”,显示以1和2开头的文件。
组合使用:例:find /home -name “*[12]”,显示所有1和2结尾的文件

~
find 按文件时间来搜索

find /home -mtime +10 在home目录下,查找10天前修改的文件 find /home -mtime 10
在home目录下,查找10天前当天修改的文件 find /home -mtime -10 在home目录下,查找10天内修改的文件
atime 文件访问时间 ctime 改变文件属性 mtime 修改文件内容

find搜索 find /root -iname test 不区分要搜索的test大小写格式 find /root -user root 搜索root目录下的所有属于root用户的文件 find /root -nouser
没有所属者的文件,liunx中,每个文件都有所属者,如果没有,那么一般都是垃圾文件,但还是有特例的,比如内核产生的文件,就没有所属者,一般在proc和sys目录下;还有外来文件,也就是U盘拷入的文件也会忽略所有者。

find 目录 -size 文件大小 注意:文件大小用小写k和大写M。
-a 表示and
-o 表示or find /etc -size +20k -a -size -50k -exec ls -lh {} \;
-exec {} \; 固定格式,表示直接对前面的搜索结果进行后面的命令处理

四·grep命令

grep [选项] 字符串 文件名 (字符串使用 “” 包围,结果为行记录)

-i 忽略大小写-v 排除指定字符串

find 命令与 grep 命令的区别

find:在 系统 中搜索符合条件的 文件名,使用 通配符(完全)匹配
grep:在 文件 当中搜索符合条件的 字符串,使用 正则表达式 (包含)匹配

原创粉丝点击