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
上次更新时间: 2024/5/7 05:59:02