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