Linux环境的查找命令

本文详细介绍了find命令在目录树中搜索文件的方法,包括各种选项和测试,以及如何使用grep命令在文件中搜索指定字符串。文章涵盖了find命令的高级用法,如组合测试和执行嵌入式命令,同时深入探讨了grep的选项和正则表达式的应用。

1 用于搜索文件的find命令

find命令用于在目录树中搜索指定文件名的文件。

find命令支持一些选项,如
find / -name test -print 在根目录下搜索名为test的文件并打印文件名。
find / -mount -name test -print 指定不要搜索挂载的其它文件系统的目录

find命令还支持一些测试,每种测试返回的结果有两种可能,true或false。find命令开始工作时,它按照顺序将定义的每种测试依次应用到它搜索的每个文件上,当一个测试返回false,find命令就停止处理它当前找到的这个文件,并继续搜索,如果一个测试返回true,find命令将继续下一个测试或对当前文件采取行动。
如,
-name 指定文件名,文件名要用引号扩起来。
type -c 文件类型为c,c常见为d目录和f普通文件。
-user username 指定文件的拥有者为username。
-newer otherfile 搜索的文件比otherfile新。

一些操作符可以用来组合测试,大多数操作符有长格式和短格式,用圆括号来强制测试和操作符的优先级,由于圆括号对shell有特殊含义,要用反斜线\来引用圆括号,即\(\),从而保证模式没有被shell拓展,而是作为参数传递给find命令。
在这里插入图片描述
如,find ./ \(-newer X -o -name "_*" \)
find . -newer while2 -print
find . -newer while2 -type f -print
对测试进行组合,如find . \( -name "_*" -or -newer while2 \) -type f -print

-exec-ok命令执行的是一个嵌入式命令,它们将命令行上后续的参数作为它们参数的一部分,直到被\;序列终止。**魔术字符串{ }**是一个特殊类型的参数,它将被当前文件的完整路径取代。
-exec command 执行一条命令,以\;字符结束。
-ok-exec类似,但在执行命令之前会针对每个要处理的文件提示用户进行确认。
如,find . -newer while2 -type f -exec ls -l {} \;

2 用于搜索文件内容的grep命令

grep命令用于在文件中搜索指定的字符串。
grep指通用正则表达式解析器(General Regular Expression Parser),find命令在系统中搜索文件,grep命令用于在文件中搜索字符串。我们可在使用find命令时,将grep作为传递给-exec的一条命令。

grep有一些主要选项:
-c 输出匹配行的数目
-E 启动拓展表达式
-i 忽略大小写
-l 只列出包含匹配行的文件名,而不输出真正的匹配行。
-v 对匹配模式取反
grep in word.txt
grep -c in words.txt words2.txt
grep -c -v in words.txt words2.txt

正则表达式:它是一种特殊的表达式,利用它我们可以实现更复杂的匹配,在使用过程中,一些字符以特定方式处理。
在这里插入图片描述
方括号中可以使用一些有用的特殊匹配模式,
在这里插入图片描述
在这里插入图片描述
当用于拓展匹配的选项-E被指定后,我们需要在控制匹配完成的其它字符前加\字符,此时下表中的模式可以使用。
在这里插入图片描述
grep e$ words2.txt
grep a[[:blank:]] words2.txt
grep Th.[[:space:]] words2.txt
grep -E [a-z]\{10\} words2.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值