在Linux中葯進行稍復雜的操作,通常需要借助管道命令"|"多個命令的組合,形式如下:
command 1 | command 2 | command 3 ……
在linux中有些命令可以直接用於管道命令中,有些則不可以,對於不可以直接用於管道的命令需要借助xargs命令:
- find ./ -type f | xargs md5sum >> md5_rc1.txt
- find ./ -type f -print| xargs md5sum >> md5_rc1.txt
- find ./ -type f -print0| xargs -0 md5sum >> md5_rc1.txt
其中,第一種和第二種的結果相似,第三種是適用於文件名含有空格的文件。原理是:通常xargs用於隔斷文件是默認為:空格、TAB、換行符等,-print0則是以NULL隔斷文件,xargs -0 就是以NULL來區分文件隔斷
而對於可以直接用於管道的命令,不需要xargs直接寫就可以,直接寫在管道符后面就能判斷,例如要確定wc命令是不是可以直接用於管道的命令
ls -l | wc -l
對於常用的可以直接用於管道的命令,主要有:
- cut
- grep
- sort
- uniq
- wc
- tee
- tr
- col
- join
- paste
- expand
- xargs
命令的具體用法和參數可以參考
http://www.cnblogs.com/lemonbar/archive/2014/08/24/3933390.html