linux下 管道 和xargs的區別

2021-07-31 21:30:10 字數 530 閱讀 9405

linux 任何乙個命令都是呼叫了乙個可執行的程式,比如說 ls -l, ls是乙個可執行檔名,-l 是乙個該程式執行時候的乙個引數

管道和xargs的作用,舉個c程式來說如下:

void main(int argc, char* argv)

xargs的作用就是提供程式執行時的引數,就是將xargs傳遞到上述**的char * argv[ ]

管道的作用就是將前面程式的的輸出放到後面程式的標準輸入快取區中,一旦後面的程式要用標準輸入scanf 讀取的時候就從該快取區中獲取內容,就是傳遞到上述的scanf()

所以什麼時候只用管道,什麼時候要加上xargs就是要判斷當前傳遞的東西究竟是作為乙個執行時的引數( ps -aux,-aux就是執行時的引數了 ),還是只是作為標準輸入提供給程式去處理(比如 grep )

參考部落格:

ps: xargs其實本身也是乙個程式,當執行引數中沒有程式名的時候,xargs會把內容直接輸出,不再傳遞

如:echo '123' |  xargs

linux下管道命令

想必很多剛接觸linux尤其是在redhat環境下,大家都見過 rpm qa grep 或者rpm qa sort之類的命令,但是並不知道 是乙個什麼符號。管道符號,是unix功能強大的乙個地方,符號是一條豎線 用法 command 1 command 2 他的功能是把第乙個命令command 1執...

Linux下管道程式設計

功能 父程序建立乙個子程序父程序負責讀使用者終端輸入,並寫入管道 子程序從管道接收字元流寫入另乙個檔案 include include include include include include include define max 100 intmain pid fork 建立子程序 if p...

linux下xargs和管道的區別

之所以能用到這個命令,關鍵是由於很多命令不支援 管道來傳遞引數,而日常工作中有有這個必要,所以就有了xargs命令,例如 find sbin perm 700 ls l 這個命令是錯誤的 find sbin perm 700 xargs ls l 這樣才是正確的 xargs 可以讀入 stdin 的...