xargs が標準入力が空のときにも実行されてしまう find . -type f | xargs wc -c など xargs を使うときに、標準入力が空だと実行されないのかと思っていたら、標準入力がなくても一度は必ず実行するというのがデフォルトだった。このため、上の結果は wc -c < /dev/null のようにとられて 0 になる。 これを避けるには、 -r オプションを使う。 xargs -r <command> 上の例だと次のようにすればよい。 find . -type f | xargs -r wc -c