Linux搜索内容的命令 linux 搜索命令( 二 )


-newer file1 file2:查找更改时间在file1和file2之间的文件
例如:
find -mtime -2:查找48小时修改过的文件
find -name ".log":查找当前目录以".log"结尾的文件
find /opt/soft/test -perm 777:查找指定目录下权限为777的文件
find -type f -name "*.log":查找当前目录下以".log"结尾的普通文件
find -type d | sort:查找当前所有目标目录并排序
find /home/wansw -size +20M:查找大于20M的文件
locate指令 , 可以快速定位文件路径,利用事先建立的系统中的所有文件名称和路径的locate数据库,无需遍历整个文件系统,查询速度较快,为了保证查询准确性,需要定期更新 。《Linux就该这么学》
updatedb:第一次运行前 , 创建locate数据库
grep,用于过滤/搜索指定字符串 。可以使用正则表达式,能配合多种命令使用 。
用法:grep 【选项】 查找内容 源文件
-A:显示符合的行及之后的内容
-B:显示符合的行及之前的内容
-C:显示符合的行及前后的内容
-c:计算符合的行数目
-n:显示匹配行和行号
-i:忽略大小写
规则表达式
:'grep'表示匹配所有以grep开头的行
'表示匹配所有以grep结尾的行
.:'gr.p'表示匹配'gr'后面接任意字符然后是'p'
:'grep'表示匹配一个或多个空格后紧跟grep的行
[]:[Gg]rep表示匹配Grep与grep
[]:[A-FH-Z]rep表示匹配不以A-F、H-Z开头并紧跟rep的行
例如(grep命令大多数时候多要和别的命令一起使用才有意义):
ps -ef | grep -c SVN:查找指定的进程的个数
cat test.txt | grep -f test2.txt:从text2.txt中读取关键字后在test.txt中搜索
cat test.txt | grep nf text2.txt:从text2.txt中读取关键字后在text.txt中搜索并显示行号
grep 'linux' text.txt test2.txt:从多个文件中搜索关键字'linux'
cat test.txt | grep -E 'ed|at':显示包含ed或at的行
linux find的用法1、按名称或正则表达式查找文件
要按特定名称搜索文件,命令如下:
find . -name test.txt
如何查找所有格式为pdf的书籍?使用正则表达式:
find ./yang/books -name "*.pdf"
默认情况下,find命令会搜索常规文件,但最好进行指定(-type f)以使所有内容更清晰:
find ./yang/books -type f -name "*.pdf"
2、查找不同类型的文件
除了搜索常规文件外,Linux搜索内容的命令我们还可以通过指定-type选项来搜索其Linux搜索内容的命令他类型的文件,例如目录:
find . -type d -name "yang*"
或者符号链接:
find . -type l -name "yang*"
3、按指定的时间戳查找文件
要搜索atime超过一年的文件,我们可以编写如下命令:
find . -type f -atime +365
如果我们需要查找mtime正好是5天前的文件,请不要包含+,因为它的意思是“大于” 。
find . -type f -mtime 5
显然,+表示“大于”,-表示“小于” 。所以我们可以搜索ctime在5~10天前的文件:
find . -type f -ctime +5 -ctime -10
4、按大小查找文件
类似于按时间戳查找文件 , +表示“大于”,-表示“小于” 。例如,要查找大小为10MB~1GB的文件:
find . -type f -size +10M -size -1G
5、按权限查找文件
合理控制文件的权限是Linux管理员的一项重要任务 。find命令的-perm选项可以帮助我们按指定权限查找文件:
find . -type f -perm 777
6、按所有权查找文件
例如 , 以下命令将查找所有属于yang的文件:
find -type f -user yang
7、在找到文件后执行命令
在大多数情况下,我们希望在找到我们需要的文件后进行后续操作 。例如将其删除,或检查它们的详细信息等等 。-exec命令使这些所有事情变得更加容易 。

推荐阅读