Robot/Linux
[Linux] xargs 명령어 (파일 및 디렉토리 관리)
genie0000
2025. 5. 1. 02:03
16. xargs ★★★
표준 입력으로 들어온 데이터를 꺼내서 다른 명령어에 전달해 주는 도구.
파이프(|) 또는 <를 통해 입력받은 문자열을 공백/줄 바꿈 기준으로 나눠서 다른 명령어의 인자로 전달.
여러 개의 파일, 문자열을 하나의 명령어로 자동 처리할 때 유용.
✅ 기본 형식
[명령어] | xargs [다른 명령어]
또는
xargs [명령어] < input.txt
✅ 자주 쓰는 옵션
옵션 | 설명 |
-n [숫자] | 한 번에 넘길 인자 개수 제한 |
-I {} | 인수 자리 지정자 사용 |
-p | 실행 전에 사용자에게 확인 |
-0 | null 문자(\0)로 구분된 입력 처리 (find ... -print0과 함께 사용) |
🔹예제 1: echo와 함께
echo "one two three" | xargs mkdir
- 결과: mkdir one two three 실행됨
→ one, two, three 디렉터리 3개가 만들어짐
🔹예제 2: find와 함께 (자주 사용!)
find . -name "*.log" | xargs rm
- *.log로 끝나는 파일들을 찾아서 한 번에 삭제
(= rm 파일 1 파일 2 파일 3...)
🔹예제 3: cat으로 파일 내용받아서 인자로 전달
cat filelist.txt | xargs rm
- filelist.txt에 적힌 파일들을 한 줄씩 읽어 rm 명령어로 삭제
🔹예제 4: -I 옵션 (자리 지정자 사용)
echo "file1 file2" | xargs -I {} mv {} backup/
- 결과: mv file1 backup/, mv file2 backup/ 실행됨
→ {} 자리에 값이 대입됨
🔹예제 5: 실행 확인을 위한 -p 옵션
echo "file1 file2" | xargs -p rm
- rm file1 file2 실행 전에 "정말 실행할까요?" 하고 물어봄
🔹예제 6: 인자 수 제한하기 (-n)
echo "1 2 3 4 5 6" | xargs -n 2 echo
- 한 번에 2개씩 묶어서 실행
echo 1 2
echo 3 4
echo 5 6
✅ 언제 유용할까?
상황 | 사용 이유 |
find로 찾은 파일들에 같은 작업 반복 | xargs로 한 줄 처리 |
파일 목록이 많은 경우 | 하나씩 처리하면 느리므로 xargs로 일괄 처리 |
스크립트 자동화 | 리스트 기반 자동 명령어 실행 |
rm, mv, cp 등 반복되는 명령어 처리 | 효율적 작업 가능 |
🔥 실전 팁: -print0 + xargs -0 조합
- 공백이 있는 파일명 때문에 문제가 생길 수 있으므로 아래처럼 쓰면 안전하다.
find . -name "*.txt" -print0 | xargs -0 rm
[Linux] 파일 및 디렉토리 관리 명령어 정리
🧩 Linux 파일 및 디렉토리 관리 명령어 정리1. ls ★★★설명: 디렉토리 내용을 나열 (list)합니다.사용법: ls [옵션] [경로]옵션:-l : 상세 정보 (파일의 마지막 수정 시간 확인 가능)-a : 숨김 파일 포
genie0000.tistory.com