find
-type
查找文件类型f
,目录类型d
,文本类型,链接类型l
find ./ -type f
-name
按名字查询,查询名字为test的目录或者文件
find ./ -name test
find ./ -name ‘*.log’
-ctime +n | -atime -n | -cmin +n | -amin -n
c 表示修改过,a 表示读取过,+n 表示在多少天/分钟前
,-n 表示在多少天/分钟内
-size
查询大小小于10M的文件,正负表示大于小于,G,M兆,k(kb),c(字节)
find ./ -type f -size -10M
-maxdepth
查询层级,多个组合放在前面
find / -maxdepth 1
-exec
{} \结尾,中间有空格,花括号代表前面``find``查找出来的文件名
,中间补全其他条件。表示执行其他的操作,和管道差不多。
find . -type f -exec grep -l "dev" {} ;
删除两天前的后缀为log的文件
find /data -ctime +2 -name "*.log" -exec rm -rf {} ;
-xargs
xargs可以将输入内容(通常通过命令行管道传递),转成后续命令的参数。
用于结果输出后续对结果的命令操作。有些命令不支持管道。
find /home -name * | xargs grep "max_children"
cat pidkill.txt | xargs kill -9
使用 -d 分割输入
-d 选项 可以自定义一个定界符:
echo "nameXnameXnameXname" | xargs -dX name name name name
使用 -n 进行多行输出
-n 选项 多行输出:
cat test.txt | xargs -n3 a b c
grep
- -r 表示迭代文件夹
- -i 忽略大小写
- -v 反转查找
- -w 默认模糊匹配,-w 参数为全匹配(精确匹配)
- -f 指定 file 与之匹配(标准的文件一定
不能有空行
才行,否则空行后面全部能匹配) - -E <regex> 和正则匹配,和 egrep(只能文本匹配,不能正则) 差不多
- -A 20 获取匹配后面20行
- -B 20 获取匹配前面20行
- -C 20 获取匹配前后面20行
--color
关键字加粗- -l 显示文件名
- -n 在显示符合范本样式的那一列之前,标示出该列的编号
- -c count 计数,等同 wc -l
例子:
# 指定文件后缀grep
grep 'shopbase' /home/admin -r -n --include *.{vm,java}
# 反匹配
grep 'shopbase' /home/admin -r -n --exclude *.{vm,java}
#多文件
grep word f.txt cpf.txt
#遍历文件夹搜索关键词。
grep -rl webSocket ./
# 打印出文件2中与文件1中的相同行
grep -fw txt1 txt2
# 排除txt2中所有的txt1行
grep -vfw txt1 txt2
#正则以f结尾
cat test.txt |grep -E 'f$'
ddddd f