这两个命令写起来会很多,这里只简单的写一些东西,加深自己的印象。

一、find

  find命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。

1)命令格式

find [参数] [搜索路径] [表达式]

默认路径是当前目录,默认表达式为-print。表达式可能由操作符、选项、测试表达式以及动作构成。

2)常用参数(可以用--help看)

-print     将匹配的文件输出到标准输出
-exec     对匹配的文件执行该参数所给出的 shell 命令
-name      按照文件名查找文件
-type     查找某一类型的文件
-prune     不在当前指定的目录中查找,如果同时使用-depth 选项,那么-prune将被忽略
-user     按照文件属主来查找文件
-group      按照文件所属的组来查找文件
-mtime -n/+n  按照文件的更改时间来查找文件,-n表示文件更改时间距现在小于n天,+n表示文件更改时间距现在大于n天

举例:

find .                  #打印当前目录下所有的文件目录列表
find . -name "*.js"      #打印当前目录所有以.js结尾的文件
find . ! -name "*.js" #打印当前目录所有不以.js结尾的文件
find . \( -name "*.pdf" -or -name "*.txt" \) #打印当前目录下所有以.txt或.pdf为结尾的文件名

1.1  通过文件类型、权限、所有者及操作符来查找匹配文件。

  根据文件类型来查找文件,使用-type参数(b:块设备文件,c:字符设备文件,d:目录,f:普通文件,l:符号链接),根据文件权限查找文件,使用-perm参数,根据所有者查找文件使用-user参数。操作符就是通用的-and(默认为-and,简写-a),-or(简写-o),-not(简写!)

举例:

find . -type f -name "*.xml"                #打印当前目录下所有以.xml为结尾的文件
find . -type f -name "*.php" -prem     #打印当前目录下所有权限为777的php文件
find . -type f -user zichuan          #打印当前目录下zichuan用户拥有的所有文件
find . -type f \(! -perm -and ! -perm \) #打印当前目录下权限不是777和666的所有文件

二、grep

  这个命令会经常使用,毕竟是Linux三剑客之一。可以用来找到文件中的匹配文本,并且能够接受正则表达式和通配符,同时可以用多个grep命令选项来生成各种格式的输出。它的工作方式是这样的,在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。还可用于shell脚本,因为 grep 通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回 0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

1)命令格式

grep [参数] pattern [file]

2)常用参数

-c       计算找到 '搜寻字符串'(即 pattern) 的次数
-i       忽略大小写的不同,所以大小写视为相同
-n      输出行号
-v       反向选择,打印不匹配的行
-r       递归搜索
--color=auto      将找到的关键词部分加上颜色显示

举例:

grep "login" /zc/test --color=auto            #将/zc/test文件中出现login的行打印出来,关键词部分加上颜色显示

grep -v "login" /zc/test | grep -v "passwd"      #将/zc/passwd文件中没有出现login和passwd的行打印出来

grep -r "main()"                       #在当前目录下递归搜索文件中包含main()的文件,可用于查找某些函数位于哪些源代码文件中

  grep和正则表达式的组合,就不概述了,平时更多的是通过其他命令和管道符(|)来拼接。

Linux命令——find/grep的更多相关文章

  1. 【linux命令】grep

    1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局 ...

  2. linux命令之grep用法介绍

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  3. 每天一个linux命令(51)--grep命令

    linux系统中grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep 全称是 global regular expression print,表示全局正则 ...

  4. 【Linux命令】grep命令

    1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...

  5. 每天学点Linux命令之grep 和 wc命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expr ession Print,表示全局正则表 ...

  6. 每日linux命令学习-grep模式检索

    grep模式检索指令包括grep,egrep,和fgrep,.Linux系统使用正则表达式优化文本检索,所以在此,笔者首先学习了一下正则表达式. 1. 正则表达式 正则表达式使用被称为元字符(Meta ...

  7. linux命令系列 grep

    grep, egrep, fgrep - print lines matching a pattern SYNOPSIS grep [OPTIONS] PATTERN [FILE...] grep [ ...

  8. 每天学点Linux命令之grep 和 wc命令 ---(6/25)

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  9. linux 命令——39 grep (转)

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

随机推荐

  1. Harbor api 操作

    harbor 的版本为 1.5.2 为 Harbor 配置 swagger 官网参考: https://github.com/goharbor/harbor/blob/v1.5.2/docs/conf ...

  2. Python 练习:简单的购物车(二)

    优化了上一个购物车程序:http://www.cnblogs.com/klvchen/p/8577269.html #输入工资salary = input("Please input you ...

  3. 一个Web页面的问题分析

    几个月之前我接到一个新的开发任务,要在一个旧的Web页面上面增添一些新的功能.在开发的过程中发现旧的代码中有很多常见的不合适的写法,结合这些问题,如何写出更好的,更规范的,更可维护的代码,就是这篇文章 ...

  4. LinkedHashMap

    LinkedHashMap既是一个HashMap,也是一个链表 package java.util; import java.util.function.Consumer; import java.u ...

  5. (网页)Http状态码大全(200、404、500等)(转CSDN)

    当我们从客户端向服务器发送请求时 服务器向我们返回状态码 状态码就是告诉我们服务器响应的状态 通过它,我们就可以知道当前请求是成功了还是出现了什么问题 状态码是由3位数字和原因短语组成的(比如最常见的 ...

  6. Ant使用及项目实践

    1.简介 Ant 是一个 Apache 基金会下的跨平台的基于 Java 语言开发的构件工具.这是一个基于开放的操作系统构建和部署的工具,该工具需要从命令行执行. 2.特点 Ant 是基于 Java ...

  7. Ubuntu 17.10 环境初始化

    输入法(中文) sogoupinyin fcitx-table-wubi 输入法快捷键 Ctrl + Space(两个间切换), Ctrl + Shift(多个间切换), Shift中英切换 与Win ...

  8. ccf--20131203--最大矩形

    刚开始我是想依次计算i个相连矩形的面积,然后找出最大的面积,但是这种做法是时间复杂度是O(n*n),运行会超时. 这个是网上的一种做法,分别计算以第i个矩形作为高时,最大的面积.这就要以i为起始点,左 ...

  9. C语句详细(初学者)

    C程序的执行部分是由语句组成的.程序的功能也是由执行语句实现的. C语句分为以下六类: 1.表达式语句:表达式加上分号“:”组成.执行表达式语句就是计算表达式的值. 2.函数调用语句:函数名.实际参数 ...

  10. Java并发编程(多线程)中的相关概念

    众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试中必问的题,一个好的Java程序员是必须对并发编程这块有所了解的. 并发必须知道的概念 在深入学习并发编程之前,我们需要了解几个基本 ...