xargs的一些小感悟

&是按位与操作符
| 是按位或操作符
这两个都是位操作符,可以自行查找有关运算和位操作符详细资料
&& 是逻辑与操作符
|| 是逻辑或操作符
maxdepth和-mindepth应该作为find的第3个参数出现。如果作为第4个或之后的参数,就可能会影响到find的效率,因为它不得不进行一些不必要的检查。例如,如果-maxdepth作为第4个参数,-type作为第三个参数,find首先会找出符合-type的所有文件,然后在所有匹配的文件中再找出符合指定深度的那些。但是如果反过来,目录深度作为第三个参数,-type作为第四个参数,那么find就能够在找到所有符合指定深度的文件后,再检查这些文件的类型,这才是最有效的搜索顺序。
       今天看到了xargs这里了,这里为了弄懂书上的东西耗费了不少脑细胞,就用书上的例子来加强一下自己的印象吧。
       xargs命令把从stdin接收到的数据重新格式化,再将其作为参数提供给其他命令。这是书上的原话,然后我利用书上的例子就一一说明吧。
       首先 cat example.txt | xargs 和 cat example.txt |xargs -n 3 以及底下的 echo "spiltXspiltXspiltXspilt" |xargs -d X 这些例子算一类,因为 -d -n 是xargs的自带参数,这里你就当这些是普通的管道连接命令。这样好理解也好记忆。具体的这些参数是什么意思百度一下就清楚了。重点不是这些所以就不讲解了。
       接着便是xargs 命令和其它命令结合算是一类。比如 cat files.txt | xargs -I {} cat {},这里xargs 和第二个cat命令结合起来了,本来cat | cat 这种格式的命令是不能用的,但有了xargs我们就可以写成这种格式来实现一些操作了,这里命令我们可以这样理解,前面cat files.txt是读取 file中的数据,xrags -n是替换的命令,那么比如你file.txt内容为helloworld,后面相当于你在其中输入的参数相当于 cat helloworld。整体相当于你把 files.txt文件中的数据作为stdin,然后给第二个cat命令。xargs就像一个搬运工和沟通的一样。

你可能感兴趣的:(Linux)