웹사이트 검색

초보자를 위한 Linux Xargs 명령의 12가지 실제 사례


Xargs는 표준 입력에서 데이터 스트림을 읽은 다음 명령줄을 생성하고 실행하는 훌륭한 명령입니다. 이는 명령의 출력을 가져와 다른 명령의 인수로 전달할 수 있음을 의미합니다. 명령이 지정되지 않으면 xargs는 기본적으로 echo를 실행합니다. 또한 stdin 대신 파일에서 데이터를 읽도록 지시하는 경우도 많습니다.

xargs는 명령줄을 일상적으로 사용할 때 여러 가지 방법으로 유용합니다. 이 기사에서는 초보자를 위한 12가지 실용적인 Linux xargs 명령 예제를 설명합니다.

1. 첫 번째 예에서는 다음과 같이 tar 유틸리티를 사용하여 모든 .png 이미지를 찾아 보관하는 방법을 보여줍니다.

여기서 작업 명령 -print0을 사용하면 표준 출력에 전체 파일 경로를 인쇄할 수 있으며 그 뒤에는 null 문자와 -0 xargs 플래그가 파일 이름의 공백을 효과적으로 처리합니다.

find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

2. 다음과 같이 xargs를 사용하여 ls 명령의 여러 줄 출력을 한 줄로 변환할 수도 있습니다.

ls -1 Pictures/tecmint/
ls -1 Pictures/tecmint/ | xargs

3. 시스템의 모든 Linux 사용자 계정에 대한 간략한 목록을 생성하려면 다음 명령을 사용하십시오.

cut -d: -f1 < /etc/passwd | sort | xargs

4. 파일 목록이 있고 목록에 있는 각 파일의 줄/단어/문자 수를 알고 싶다면 ls 명령을 사용하고 이 목적을 위해 xargs는 다음과 같습니다.

ls *upload* | xargs wc

5. 또한 Xarags를 사용하면 디렉터리를 찾아 반복적으로 제거할 수 있습니다. 예를 들어 다음 명령은 Downloads 디렉터리에서 DomTerm을 반복적으로 제거합니다.

find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

6. 이전 명령과 마찬가지로 현재 디렉터리에서 net_stats라는 이름의 모든 파일을 찾아서 삭제할 수도 있습니다.

find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7. 다음으로 xargs를 사용하여 파일을 여러 디렉터리에 동시에 복사합니다. 이 예에서는 파일을 복사하려고 합니다.

echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

8. 다음과 같이 find 명령, xargs 및 rename 명령을 함께 사용하여 특정 디렉터리의 모든 파일이나 하위 디렉터리의 이름을 소문자로 바꿀 수도 있습니다.

find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9. 다음은 xargs에 대한 또 다른 유용한 사용 예입니다. 이는 특정 확장자를 가진 하나 또는 몇 개의 파일을 제외하고 디렉토리 내의 모든 파일을 삭제하는 방법을 보여줍니다.

find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10. 앞에서 언급한 것처럼 -a 플래그를 사용하여 표준 입력 대신 파일에서 항목을 읽도록 xargs에 지시할 수 있습니다.

xargs -a rss_links.txt

11. 실행하기 전에 표준 오류 출력에 명령줄을 인쇄하도록 xargs에 지시하는 -t 플래그를 사용하여 자세한 정보를 활성화할 수 있습니다.

find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12. 기본적으로 xargs는 공백을 사용하여 항목을 종료/구분합니다. -d 플래그를 사용하여 구분 기호를 설정할 수 있습니다. 단일 문자, \n와 같은 C 스타일 문자 이스케이프 또는 8진수 또는 16진수 이스케이프 코드.

또한 표시된 대로 -p 플래그를 사용하여 각 명령줄을 실행하고 터미널에서 줄을 읽을지 여부를 사용자에게 묻는 메시지를 표시할 수도 있습니다. 또는 아니요의 경우 n).

echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

자세한 내용은 xargs 매뉴얼 페이지를 읽어보세요.

man xargs 

지금은 그게 다야! Xargs는 명령줄 작성을 위한 강력한 유틸리티입니다. 처리를 위해 한 명령의 출력을 다른 명령의 인수로 전달하는 데 도움이 될 수 있습니다. 이 기사에서는 초보자를 위한 12가지 실용적인 xargs 명령 예제를 설명했습니다. 아래 피드백 양식을 통해 생각이나 질문을 공유해 주세요.