linux011之搜索命令find
linux关于搜索文件或目录的命令 find (重要):
find *.txt:默认在当前目录下所有.txt文件, *代表通配符,通配符可以在前面也可以在后面。
find 路径 *txt:搜索指定目录下所有.txt文件
find 路径 -size +5M: 搜索指定目录下大于5兆的文件, 小于用-, 等于用=。M、G、K等单位都可以使用。
find -user 用户:按文件创建有者来搜索文件和目录
搜索过滤命令,在前面一个搜索命令的结果按名称进一步搜索 |grep (重要):
命令结构:查找命令 |grep 关键字
find *.txt |grep new : 在当前目录下, 搜索所有.txt 的文件,然后再过滤出带有 new关键字的数据。也就是二次过滤
cat t1.txt |grep hello: 查看t1.txt 文件的内容, 然后对文件内容过滤出带有hello关键字的内容。 也就是二次过滤,注意关键字是区分大小写的。
cat t1.txt |grep -i hello: 查看t1.txt 文件的内容, 然后对文件内容过滤出带有hello关键字的内容。 也就是二次过滤,关键字不区分大小写
cat t1.txt |grep -ni hello:对查找的内容输出行号
ls 也是查找命令, 所以 |grep 也可以和ls命令结合使用, |grep可以对所有查找命令结合使用。
关于搜索命令 locate (了解即可):
简介:locate 搜索命令与 find 搜索命令的区别就是, find是通过访问数据库去搜索, find是有查找范围的,而 locate 是通过linux的目录树去搜索,都是根据名称搜索的, locate是没有查找范围的,locate的查找效率会更高一些,但是locate目录树的数据更新不及时,如果实时更新效率会比较慢,所以比较少用。
updatedb:可以让 locate 的目录树里面的数据得到同步,然后再使用locate命令, 就可以搜索出实时的数据。
locate *.txt:在所有目录下搜索.txt的文件