[Linux] 리눅스 명령어 - XargsLinux2022. 2. 22. 15:55
Table of Contents
728x90
✅ Xargs란 ?
- xargs 유틸리티를 사용하여 표준 입력에서 명령을 작성하고 실행할 수 있다.
- 일반적으로 파이프 이전의 명령을 인자로 받아 명령어를 실행한다.
- mkdir 및 rm과 같은 명령줄 유틸리티에 표준 입력을 인수로 제공할 수 있다.
xargs [OPTIONS][COMMAND [initial-arguments]]
✅ Xargs 옵션
- - a : 표준 입력 대신 파일에서 항목을 읽음, 이 옵션을 사용하여 명령을 실행하면 stdin(표준 스트림)은 변경되지 않는다. 그렇지 않으면 stdin이 /dev/null에서 리다이렉션 됨
- - O : 공백이나 특수문자를 찾을때 사용 (문자를 그대로 사용)
- (Ex. find /opt -name “*.[ch]” | xargs touch -> 여기서 파일 이름에 공백이 있을 경우 각각 분리된 파일로 넘겨지는데 find /opt -name “*.[ch]” -print0 | xargs -O touch 형식으로 사용하면 -print0 은 파일 사이의 공백을 \0으로 분리자로 출력하고 xargs에서는 \0으로 표시된 분리자를 인식하여 하나의 파일이름으로 인식하고 다음 인자로 넘어간다)
- - d : 입력된 문자를 그대로 사용한다 (따음표, 백슬래쉬 같은 특수문자), 단순히 문자가 스페이스 같은걸로 분리되어 있을때 사용가능 하지만 다른 인수와 같이 처리되는 데는 사용 불가능
- - n : 지정된 숫자만큼 행을 출력 (앞에서 들어오는 인자의 수를 제한할 수 있다. 앞에서 5개의 표준 입력이 만들어져도 -n 으로 지정한 숫자만큼의 매개변수가 넘어온다.)
- - p : 사용자에게 각 명령 행을 실행할지 여부와 터미널에서 행을 읽는거에 대한 여부를 묻는다 (yes , no 지정)
- - P : 하나의 명령에 프로세스 지정, -n 옵션과 같이 사용 ( -n으로 10개의 출력을 한다면 -p를 사용시 -n만큼의 프로세스가 실행, -p를 0으로 지정하면 한번에 사용할수 있는 프로세스를 모두 사용)
- - t : xargs를 통해 구성된 명령어를 표준 에러로 출력 (실행된 커먼드가 무엇인지 표시하므로 디버깅과정에 유용)
- - s : 한 라인에 들어갈 수 있는 문자열 수를 지정, 기본적으로 128k 안으로 문자열을 만들어 하나의 명령을 실행하나 해당 옵션은 최대 1024k까지 사용가능하게 한다.
- - x : -s 로 지정한 크기가 초과되면 종료시킨다
- —show-limits : xargs의 버퍼 크기 선택 및 -s 옵션에 대한 길이 제한을 출력
- - E : 문자열 끝을 eof-str로 설정한다.
- - I(i) : xargs에 전달된 라인 전체를 뒤에 나오는 명령어의 인자로 사용 (디폴트로 라인 전체를 의미하는 기호는 {} 이다) (Ex. find . -name “*.c”” | xargs -i {} sh -c ‘echo -n {} >> c_file.txt; stat -c %Y {} >> c_file.txt’ -> 하위 폴더에서 모든 C로 끝나는 파일들을 찾아 파일이름과 날짜롤 c.file.txt에 저장)
- - l(L) : 해당 명령을 사용하면 명령어 뒤에 공백이 있으면 다음 행으로 인식하는게 아닌 다음줄에 입력 라인에 있어도 논리적으로 이어지게 한다. (-l 옵션을 사용하면 읽어들이는 각 행은 내부적으로 버퍼링이 된다. -l 옵션만 사용하는 경우 허용하는 버퍼의 상한이 있어 제한이 걸리는데 (대량의 파일이나 행을 읽어들이는 경우) -s 옵션을 함께 사용하면 -s 옵션에 지정된 만큼 버퍼 크기를 늘릴 수 있으며 매우 긴 행이 발생되지 않도록 할 수 있다)
inum이 67576960인 파일을 찾아 ab.tar로 압축한다.
참고
728x90
'Linux' 카테고리의 다른 글
[Linux] 리눅스 명령어 - 파일 입출력 명령어(grep) (0) | 2022.02.22 |
---|---|
[Linux] 리눅스 명령어 - 파일 입출력 명령어(cut, paste, diff) (0) | 2022.02.22 |
[Linux] 리눅스 명령어 - find 명령어 (0) | 2022.02.22 |
[Linux] 리눅스 명령어 - 파일 상태 확인 명령어 (stat) (0) | 2022.02.21 |
[Linux] 리눅스 명령어 - 시스템 명령어 (df, du) (0) | 2022.02.21 |
@TTOII :: 뭉게뭉게 클라우드
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!