加入收藏 | 设为首页 | 会员中心 | 我要投稿 瑞安网 (https://www.ruian888.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux find命令详解--转

发布时间:2021-02-06 01:21:41 所属栏目:Linux 来源:网络整理
导读:转自:http://blog.csdn.net/jakee304/article/details/1792830 (一)Get Start 最简单的find用法莫过于如此: $?find? . 查找当前目录下的所有文件。 find命令的一般格式为: find?[ - H]?[ - L]?[ - P]?[path ... ]?[expression] 其中,'-H' '-L' '-P'三

有些操作系统中出于安全考虑只允许-exec选项执行诸如l s或ls -l这样的命令。也可以使用-exec动作项的安全模式:-ok动作项。它的功能和语法都跟-exec一样,只不过它以更安全的模式运行,当要删除文件时,它会给出提示,让你选择到底删除还是不删。例如:

linux find命令详解--转$?find?logs?-name?"*abc*"?-ok?rm?{} /;

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

linux find命令详解--转

利用管道,把find命令匹配到的文件名传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用-exec动作项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。例如,要在普通文件中查找文件内容中包含"io"的文件,可以这么写:

linux find命令详解--转grep?"io"linux find命令详解--转linux find命令详解--转2234.c:#include?

linux find命令详解--转./3e10.c:#include?

linux find命令详解--转

find命令配合exec和xargs可以对所匹配到的文件执行几乎所有的命令。

(十四)总结

理解并运用find,关键是掌握find命令的处理规则(见第五节):递归遍历所指定的目录树,针对每个文件依次执行find命令中的表达式,表达式首先根据逻辑运算符进行结合,然后依次从左至右对表达式求值。把这个理解了,需要什么功能查一下man就可以了。find命令还有好多功能这里没有涉及到,具体的大家看man手册页吧。在任何时候,man都是一个极好的帮助工具。?? ^_^

(十五)附

第五节提出的问题,答案如下:

linux find命令详解--转"*e*[0-9]*"?-o?? /???????? !? /(?-name?"."?-o?-name?"*phone"?/)?-prune??-name?"*.c"?-user?xixi???/???????? -o?-name?"*phone"linux find命令详解--转linux find命令详解--转3e10.clinux find命令详解--转linux find命令详解--转

这篇文章断断续续写了好久,今天终于基本完工。参考了man手册页以及一些网上的资料。要把自己心中所想有条理的写出来感觉真是不易,希望对大家有所帮助。欢迎批评指正。Jakee2007-11-12

(编辑:瑞安网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读