最近学习了linux的一些命令,看到一连串的管道符合xargs就懵球子了。就仔仔细细的学了学两者的区别linux
先整体说一下区别:学习
管道符 | 的意思就是说,将前一个命令的标准输出做为后面一个命令的标准输入。spa
xargs 的意思就是说,把标准输入格式化为一行,做为后面的命令的命令行参数。命令行
下面咱们举个栗子 :blog
看懂了没? file
cat file.txt 咱们看到文件里面是什么内容,而后咱们再次 cat file.txt | xargs 一下,发现结果都变成一行了,这就是所谓的格式化为一行。im
接下来咱们看,cat file.txt | cat 这里再次输出了file.txt文件的内容,这就是前面的标准输出做为了后面的标准输入。数据
最后咱们再看这个 cat file.txt | xargs cat ,上面咱们已经看到,命令执行到xargs时候,内容已经格式化为一行了,而后咱们在将数据做为后面的命令的命令行参数(不一样于标准输入)img
cat命令报错说没有这些目录,固然这些目录确定不存在,都是一些随机键入的字符而已。文件
若是还没看懂,那就将这几个命令反复敲几回吧。书读百遍,其义自见!