728x90
반응형
리눅스에서 xargs 명령어는 표준 입력으로부터 입력된 데이터를 받아 다른 명령어에 전달하는 역할을 합니다.
이를 통해 대용량의 데이터를 처리하는 작업을 보다 효율적으로 처리할 수 있습니다.
아래는 xargs 명령어의 다양한 예제입니다.
옵션 | 설명 | 예제 |
-n | 입력 받을 인자의 최대 수를 설정합니다. | find . -name "*.log" | xargs -n 2 cp -t ./backup |
-I | 인자 대체 문자열을 지정합니다. | ls *.txt | xargs -I {} mv {} ./textfiles |
-t | 명령어를 실행하기 전 명령어를 출력합니다. | echo "*.log" | xargs -t rm |
-p | 각 명령어 실행 전 확인 메시지를 출력합니다. | find / -type f -name "passwd" | xargs -p -n 1 cp -t ./backup |
-r | 입력 인자가 없는 경우 명령어를 실행하지 않습니다. | echo "" | xargs -r echo "No arguments" |
-s | 명령어가 실행될 때 입력 인자의 최대 크기를 지정합니다. | find / -type f -print0 | xargs -0 -s 1024 ls -l |
-0 | NULL 문자(\0)로 구분된 입력을 처리합니다. | find / -type f -print0 | xargs -0 rm |
파일 삭제
find . -name "*.log" | xargs rm
현재 디렉토리 아래에 있는 확장자가 ".log"인 파일을 모두 삭제합니다.
명령어 실행
echo "1 2 3 4 5" | xargs -n 2 sh -c 'echo $1+$2=$(($1+$2))' sh
1부터 5까지의 숫자를 하나의 문자열로 입력하고, -n 옵션을 이용해 입력받을 인수의 개수를 지정하였습니다. 이후 sh -c 명령어를 이용해 입력받은 2개의 인수를 더한 값을 출력합니다.
cat file_list.txt | xargs -I {} sh -c 'cp {} {}.backup'
file_list.txt에 있는 파일 목록을 읽어와서 각 파일을 백업 파일로 복사합니다.
폴더 이동
ls -d */ | xargs -I {} mv {} /path/to/new/directory/
현재 디렉토리 아래에 있는 모든 폴더를 찾아 /path/to/new/directory/ 로 이동합니다.
특정 문자열 치환
cat list.txt | xargs -I {} sed -i 's/foo/bar/g' {}
list.txt 파일 내에 있는 모든 "foo" 문자열을 "bar" 문자열로 변경합니다.
병렬 실행
cat list.txt | xargs -P 4 -n 1 sh -c 'command {}'
list.txt 파일 내에 있는 모든 항목에 대해 "command" 명령어를 병렬 실행합니다. -P 옵션은 병렬로 실행할 프로세스의 개수를 지정합니다.
명령어 실행 실패 처리 예제
cat file_list.txt | xargs -I {} sh -c 'if mv {} {}.bak; then echo "Success"; else echo "Failed"; fi'
file_list.txt에 있는 파일 목록을 읽어와서 각 파일을 백업 파일로 복사하는데, 파일 복사에 실패할 경우 "Failed"를 출력합니다.
728x90
반응형
LIST
'Linux' 카테고리의 다른 글
[Linux] sed 명령어를 이용한 다양한 예제 (1) | 2023.04.01 |
---|---|
[Linux] grep 명령어를 이용한 다양한 예제 (1) | 2023.03.30 |
[Linux] find 와 exec 를 이용한 다양한 예제 (1) | 2023.03.26 |
[Linux] curl을 이용한 WebDAV 사용법 (0) | 2023.03.23 |
[Linux] curl 명령어 (1) | 2023.03.22 |