linux find命令返回值,Linux常用命令(二)_搜索类命令find、grep

find命令用于在目录中匹配文件,grep命令用于在文件中匹配关键词

1. find命令

1.1 基本语法

find [搜索范围] [option]

option种类

功能

-name

按照指定的文件名查找模式查找文件

-user

查找属于指定用户名所有文件

-size

按照指定的文件大小查找文件

-perm<755>

按照文件权限查找文件

-mtime -n +n

按照文件的更改时间查找文件。 -n表示距现在n天以内,+n表示距现在n天前

-type

表示查找某一类型的文件 b\d\c\p\l\f

1.2 实例

find . -name “* .txt”

find . -iname “.txt”

find /usr/ -path ‘* local* ’

find . -regex “.*(.txt|.pdf)$”

搜索大于(小于/等于)10K的文件并删除

find . -type f -size +(-/空)10k -delete

搜索权限不为777的文件 按执行权限来查找

find . -type f ! -perm 777

搜索tom的所有文件

find . -type f -user tom

最后10min 访问的文件

find /home -amin -10

最近两天访问的文件

find /home -atime -2

5min里修改过的文件

find / -mmin -5

1.3 find与-exec、xargs

find与-exec

-exec 执行该参数所给出的shell命令。相应的命令形式为“command” {} ; {} 与;有空格。

find . -type f -user root -exec chown tom {} ;

0853aff674eea86de9d4c86d0852fa1d.png

-ok 安全模式执行shell命令。-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。

find . -name " *.txt" -ok rm (http://man.linuxde.net/rm) {} ;

1c4e9b7d5445381a5ad56595648c399a.png

find与xargs

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

用grep命令在所有的普通文件中搜索hostname这个词

find . -type f -print | xargs grep “hostname”

删除文件大小为零的文件

find ./ -size 0 | xargs rm -f & 删除文件大小为零的文件

2.管道符(|)

作用:将前面命令的标准输出作为后面命令的标准输入

3.grep命令

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

3.1 基本语法

grep 关键词 [文件/目录] [option]

option种类

功能

-c / --count

只打印匹配的行数,不显示匹配的内容

-f File / --file=File

从文件中提取模板

-i / --ignore-case

忽略大小写

-l / --files-with-matches

打印匹配模板的文件清单

-L / --files-without-match

打印不匹配模板的文件清单

-n / --line-number

在匹配的行前面打印行号。

-w,–word-regexp

如果被引用,就把表达式做为一个单词搜索

3.2 实例

在多个文件中查找包含“test_text”的文本行,标记并返回。

grep “test_text” file_1 file_2 —color=auto

caf141d3acebb29e16175b0f23f46c68.png

-E:正则匹配 -o: 只输出 文件中匹配到的部分。

grep -o -E “[a-c]+” 或 egrep “[a-c]+”

afca4e44612814a2aa5a905d41e69226.png

-c:统计文件和文本中包含匹配字符串的行数

grep -c test_text/“test_text” file_1 file_2

-r:递归搜索 -n:显示关键词在文件的第几行

grep “test_text” . -r -n 在多级目录中对文本进行递归搜索。

-i 忽略大小写 -n 显示搜索字符所在行数。

grep -i HELLO -n text1

89bca23c29a03f648a72dab866cdb6b9.png

-e 制动多个匹配样式

grep -e “only” -e “hello” -o -n text1

788ce769e723837ce60997bb5f41a3d3.png

只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)

grep -w pattern files

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值