删去当时目录下(包含子目录)一切的*.java文件ITeye - 威尼斯人

删去当时目录下(包含子目录)一切的*.java文件ITeye

2019年02月18日11时04分10秒 | 作者: 运鹏 | 标签: 文件,指令,运用 | 浏览: 2878

运用find指令的-exec选项处理匹配到的文件时, find指令将一切匹配到的文件一同传递给exec履行。不幸的是,有些体系对能够传递给exec的指令长度有约束,这样在find指令运转几分钟之后, 就会呈现溢出过错。过错信息通常是"参数列太长"或"参数列溢出"。这就是xargs指令的用途地点,特别是与f i n d指令一同运用。Find指令把匹配到的文件传递给xargs指令,而xargs指令每次只获取一部分文件而不是悉数,不像-exec选项那样。这样它可 以先处理最早获取的一部分文件,然后是下一批,并如此继续下去。在有些体系中,运用-exec选项会为处理每一个匹配到的文件而建议一个相应的进程,并非 将匹配到的文件悉数作为参数一次履行;这样在有些情况下就会呈现进程过多,体系功能下降的问题,因此功率不高;而运用xargs指令则只要一个进程。另 外,在运用xargs指令时,究竟是一次获取一切的参数,仍是分批获得参数,以及每一次获取参数的数目都会依据该指令的选项及体系内核中相应的可调参数来 断定。

让咱们来看看xargs指令是怎么同find指令一同运用的,并给出一些比如。

下面的比如查找体系中的每一个一般文件,然后运用xargs指令来测验它们别离归于哪类文件:

下面的比如在整个体系中查找内存信息转储文件(core dump),然后把成果保存到/tmp/core.log 文件中:

$ find . -name "core" -print | xargs echo "" /tmp/core.log

下面的比如在/apps/audit目录下查找一切用户具有读、写和履行权限的文件,并回收相应的写权限:

$ find /apps/audit -perm -7 -print | xargs chmod o-w

鄙人面的比如中,咱们用grep指令在一切的一般文件中查找device这个词:

$ find / -type f -print | xargs grep "device"

鄙人面的比如中,咱们用grep指令在当时目录下的一切一般文件中查找DBO这个词:

$ find . -name \\ *-type f -print | xargs grep "DBO"

留意,在上面的比如中, \\用来撤销find指令中的*在shell中的特别意义。

小结

find指令是一个十分优异的东西,它能够依照用户指定的原则来匹配文件。运用exec和

xargs能够运用户对所匹配到的文件履行简直一切的指令。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表威尼斯人立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章