Linux 搜索查找命令
1. find [搜索范围(目录)] [选项] [文件或者正则表达式或其它参数]
使用说明:
从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
选项:
选项较多,这里列取常用的
-name :按照指定的文件名查找模式查找文件
-user :按照用户名查找属于指定用户的所有文件
-size :按照指定的文件大小查找文件。
例:
find /tmp/xxx/ -name a.txt 在目录/tmp/xxx/下查询名称为a.txt的文件
find /tmp/xxx/ -name *.txt 在目录/tmp/xxx/下查询后缀为.txt的文件
find /tmp/xxx/ -user root 在目录/tmp/xxx/下查询属于root用户的文件
find /tmp/xxx/ -size +28M 在目录/tmp/xxx/下查询大于28M的文件
find /tmp/xxx/ -size 28M 在目录/tmp/xxx/下查询等于28M的文件
find /tmp/xxx/ -size -1024k 在目录/tmp/xxx/下查询小于1024k的文件
2. locate/slocate 文件或目录
使用说明:
locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
例:
第一次使用locate之前首先使用updatedb命令
locate aa.txt 搜索根目录下的aa.txt文件
locate /tmp/xxx *.txt 搜索/tmp/xxx目录下的所有.txt文件
locate /m 搜索根目录下的所有以m开头的文件或目录
locate /tmp/xxx/m 搜索/tmp/xxx/目录下的所有以m开头的文件或目录(如果指定了搜索目录,那么要搜索的项则为该目录的子级)
3. grep [选项] 搜索项 文件
使用说明:
过滤查找,在文件中搜索符合搜索项的内容。是一个特别常用的命令,经常和别的命令组合使用。
“|” :管道符,表示将前一个命令的处理结果输出传递给后面的命令处理。
选项:
选项较多,这里列取常用的
-i :忽略字符大小写的差别。
-n :在显示符合范本样式的那一列之前,标示出该列的编号。
-v :反转查找。
-w :只显示全字符合的列。
例:
grep 你好世界 xxx/aa.txt 在aa.txt里查找“你好世界”并输出到终端。
grep "hello world" xxx/aa.txt 在aa.txt里查找“hello world”并输出到终端。
grep -v 你好世界 xxx/aa.txt 输出除“你好世界”之外的所有行
grep -n 世界 xxx/aa.txt | grep -v 你好世界 在aa.txt里查找“世界”并输出除“你好世界”之外的所有行。
cat xxx/aa.txt | grep 世界 在aa.txt里查找“世界”并输出所查到的行。