xargs는 기본적으로 단독으로 사용하는 command가 아니며 다른 command과 조합으로 사용한다.
xargs에서 다른 command를 실행하면, 표준입력으로 값으로 들어온 값을 그대로 command로 넘겨준다. 그래서 이름 xargs 인 것 같다.
결론적으로 xargs의 command는 표준입력의 넘어온 list의 제한적인 검색 또는 실행을 한다.
$ find . -name "*.o" | xargs rm -rf
SYNOPSIS xargs [-0prtx] [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null] [-d delimiter] [--delimiter delimiter] [-I replace-str] [-i[replace-str]] [--replace[=replace-str]] [-l[max-lines]] [-L max-lines] [--max-lines[=max-lines]] [-n max-args] [--max-args=max-args] [-s max-chars] [--max-chars=max-chars] [-P max-procs] [--max-procs=max-procs] [--interactive] [--verbose] [--exit] [--no-run-if-empty] [--arg-file=file] [--show-limits] [--version] [--help] [command [initial-arguments]]
2. 기본예제
$ find . -name "*.o" | xargs rm -rf $ ls "*.o" | xargs rm -rf
위 예제가 제대로 동작이 안될 때 아래와 같이 한다.
왜냐하면 find를 검색은 기본적으로 newline을 포함하지만 -print0 은 이를 제거한다.
$ find /tmp -name "*.tmp" -print0 | xargs -0 rm
- 각 directory의 전체 사이즈를 알고 싶을 경우.
$ ls | xargs du -hs
http://www.dreamy.pe.kr/zbxe/CodeClip/164220
http://www.thegeekstuff.com/2013/12/xargs-examples/