xargs與exec命令執行效率問題

2021-06-23 06:48:14 字數 967 閱讀 3986

xargs,exec都是命令傳遞的過濾器,捕捉前面乙個命令的結果,並將其傳遞到後乙個命令。簡單點說:

比如要統計伺服器上檔案大小在1k,10k,100k之上的檔案,將其列出來:

[root@linux ~]# time -p find / -size +100k | xargs ls -lart {} \;

real 7.29

user 1.31

sys 6.89

[root@nas2ds1 boot]# time -p find / -size +100k -exec ls -lart {} \;

real 31.00

user 6.06

sys 20.88

[root@linux ~]# time -p find / -size +10k | xargs ls -lart {} \;

real 12.43

user 3.96

sys 8.99

[root@linux ~]# time -p find / -size +10k -exec ls -lart {} \;

real 105.14

user 20.38

sys 67.65

[root@linux ~]# time -p find / -size +1k | xargs ls -lart {} \;

real 28.62

user 5.72

sys 24.01

[root@linux ~]# time -p find / -size +1k -exec ls -lart {} \;

real 703.89

user 129.08

sys 456.97

note:

xargs與exec命令執行效率問題

xargs,exec都是命令傳遞的過濾器,捕捉前面乙個命令的結果,並將其傳遞到後乙個命令。簡單點說 exec 要結合 來用,表示前面查詢的結果 結束符,這是固定的寫法.xargs 要結合 來操作,在處理批處理檔案時,速度要快些。做了乙個小實驗,統計整個linux系統,檔案大小在1k,10k,100k...

find命令處理之exec與xargs區別

對符合條件的檔案執行所給的linux 命令,而不詢問使用者是否需要執行該命令。表示命令的引數即為所找到的檔案,以 表示comman命令的結束。是轉義符,因為分號在命令中還有它用途,所以就用乙個 來限定表示這是乙個分號而不是表示其它意思。ok 和 exec的作用相同,格式也一樣,只不過以一種更為安全的...

Linux中exec與xargs的區別

在linux中exec與xargs都是將前乙個命令的結果作為他的標準輸入,但二者還是有區別的。要結合 來用,表示前面查詢的結果 結束符,這是固定的寫法 引數是乙個乙個傳遞的,傳遞乙個引數執行一次 檔名有空格等特殊字元也能處理 傳遞給exce命令的長度有限制,在某些系統上 exec引數只能呼叫很少的s...