1、find
find
文件名
find /home -name "*.txt" 查找以.txt结尾的文件
find /home -iname "*.txt" 忽略大小写
文件类型
f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo
目录深度
find . -maxdepth 3 -type f
find . -mindepth 2 -type f
文件时间戳
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
find . -type f -atime -7
文件大小
find . -type f -size 文件大小单元
b —— 块(512字节)
c —— 字节
w —— 字(2字节)
k —— 千字节
M —— 兆字节
G —— 吉字节
删除匹配
find . -type f -name "*.txt" -delete
权限匹配
find . -type f -perm 777
find . -type f -name "*.php" ! -perm 644 当前目录下搜索出权限为777的文件
find . -type f -user tom 找出当前目录用户tom拥有的所有文件
find . -type f -group sunk 找出当前目录用户组sunk拥有的所有文件
长度为0
find .empty
2、locate
不搜索具体目录,而是搜索一个数据库/var/lib/locatedb
locate /etc/sh
3、grep
global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来
ps -ef | grep java 显示java进程信息
ps -ef | grep java -c 统计java进程个数
grep -n "aaa" a.txt 搜素文字
或操作
grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename // 用egrep同样可以实现
awk '/123|abc/' filename // awk 的实现方式
与操作
grep pattern1 files | grep pattern2 //显示既匹配 pattern1 又匹配 pattern2 的行
grep -i pattern files //不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files //只列出匹配的文件名,
grep -L pattern files //列出不匹配的文件名,
grep -w pattern files //只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files //匹配的上下文分别显示[number]行