Daylogs/Unix

xargs: 전달받은 파라미터를 명령 중간에 넣고 싶을 때

ohgyun 2015. 11. 1. 14:28
발생일: 2015.10.19

키워드: xargs, 파라미터, 중간

문제:
디렉토리에서 특정 확장자를 가진 파일을 찾아 특정 폴더로 복사하려고 한다.

find 와 xargs 명령으로 간단히 처리할 수 있을 것 같은데,
xargs 명령 중간에 넣어야 할 것 같다.

어떻게 하면 될까?


해결책:

xargs 명령의 파라미터를 중간에 넣고 싶을 때엔,
아래처럼 구분문자열을 정의하고 커맨드 내에서 구분문자열을 사용하면 된다.

xargs -I [구분문자열] 커맨드


예를 들어, 위의 문제에서 구분자를 '%'로 사용한다고 가정하면, 아래와 같이 처리할 수 있다.

$ find . -name *.js | xargs -I % cp % ./dist


다른 구분자를 사용자를 사용하고 싶다면 -l 옵션에서 변경하면 된다.
예를 들어, 언더바(_)로 처리한다면 동일한 명령을 아래처럼 작성할 수 있다.

$ find . -name *.js | xargs -l _ cp _ ./dist





반응형