일부 Linux 명령을 함께 묶어야 하는데 그 중 하나가 파이프 입력을 허용하지 않습니까? xargs는 한 명령어의 출력을 가져와 다른 명령어에 매개변수로 보낼 수 있습니다.
당신은 목적 리눅스 xargs
일부 Linux 명령을 함께 묶어야 하는데 그 중 하나가 파이프 입력을 허용하지 않습니까? xargs
는 한 명령에서 출력을 가져와 다른 명령에 매개변수로 보낼 수 있습니다.
모든 표준 Linux 유틸리티에는 3개의 데이터 스트림이 연결되어 있습니다. 표준 입력 스트림(stdin), 표준 출력 스트림(stdout), 표준 오류 스트림(stderr)입니다.
이 스트림은 텍스트와 함께 작동합니다. 텍스트를 사용하여 명령에 입력(stdin)을 보내고 응답(stdout)은 터미널 창에 텍스트로 기록됩니다. 오류 메시지는 또한 터미널 창에 텍스트(stderr)로 기록됩니다.
Linux 및 유닉스 계열 운영 체제의 뛰어난 기능 중 하나는 한 명령의 stdout 출력을 두 번째 명령의 stdin 입력으로 파이프하는 기능입니다. 첫 번째 명령은 출력이 터미널 창으로 가지 않는 것을 신경 쓰지 않고 두 번째 명령은 입력이 키보드에서 나오지 않는 것을 신경 쓰지 않습니다.
모든 Linux 명령에 세 가지 표준 스트림이 있지만 모든 명령이 다른 명령의 표준 출력을 표준 입력에 대한 입력으로 받아들이는 것은 아닙니다. 즉, 입력을 파이프할 수 없습니다.
광고
xargs
는 표준 데이터 스트림을 사용하여 실행 파이프라인을 구축하기 위한 명령입니다. xargs
를 사용하여 echo
, rm
및 mkdir
과 같은 명령이 표준 입력을 인수로 받아들이도록 만들 수 있습니다.< /p>
xargs 명령
xargs
는 파이프 입력을 허용합니다. 파일에서 입력을 받을 수도 있습니다. xargs
는 그 입력을 우리가 작업하도록 지시한 명령의 매개변수로 사용합니다. 특정 명령으로 작업하도록 xargs
에 지시하지 않으면 기본적으로 echo
를 사용합니다.
이를 사용하여 xargs
가 여러 줄 입력에서도 항상 한 줄의 출력을 생성하는 방법을 보여줄 수 있습니다.
ls
와 함께 -1
(한 줄에 하나의 파일 나열) 옵션을 사용하면 파일 이름의 단일 열이 생성됩니다.< /p>
ls -1 ./*.sh
현재 디렉토리에 있는 쉘 스크립트 파일을 나열합니다.
예상대로 단일 열이 표시됩니다. xargs
를 통해 파이프하면 무엇을 얻을 수 있습니까?
<사전>ls -1 ./*.sh | xargs
광고
출력은 하나의 긴 텍스트 스트림으로 터미널 창에 기록됩니다.
이 기능을 통해 xargs
매개변수를 다른 명령에 제공할 수 있습니다.
wc와 함께 xargs 사용
xargs
를 사용하여 wc
가 여러 파일에서 단어, 문자 및 줄을 쉽게 계산하도록 할 수 있습니다.
<사전>ls *.page | xargs 화장실
이렇게 하면 됩니다:
<울>
ls
는 *.page 파일을 나열하고 목록을 xargs
에 전달합니다.xargs
는 파일 이름을 wc
에 전달합니다.wc
는 파일 이름을 명령줄 매개변수로 받은 것처럼 처리합니다.각 파일에 대한 통계가 전체 합계와 함께 표시됩니다.
확인과 함께 xargs 사용
-p
(대화형) 옵션을 사용하여 xargs
가 계속 진행할 수 있다는 확인 메시지를 표시하도록 할 수 있습니다.
파일 이름 문자열을 touch
에 전달하면 xargs
를 통해 touch
가 파일을 생성합니다. 우리.
<사전>에코 ‘하나 둘 셋’ | xargs -p 터치
광고
실행될 명령이 표시되고 xargs
는 “y” 또는 “Y” 또는 “n” 또는 “N”을 입력하고 Enter 키를 눌러 응답할 때까지 기다립니다.
Enter만 누르면 “n”으로 처리됩니다. 명령은 “y” 또는 “Y”를 입력하는 경우에만 실행됩니다.
“y”를 누르고 Enter를 눌렀습니다. ls
를 사용하여 파일이 생성되었는지 확인할 수 있습니다.
하나 둘 셋
여러 명령과 함께 xargs 사용
-I
(초기 인수) 옵션을 사용하여 xargs
와 함께 여러 명령을 사용할 수 있습니다.
이 옵션은 “replace-string”을 정의합니다. replace-string의 토큰이 명령줄에 나타날 때마다 xargs에 제공된 값은
가 삽입되었습니다.
tree
명령을 사용하여 현재 디렉토리에서 하위 디렉토리를 살펴보겠습니다. -d
(디렉토리) 옵션을 사용하면 tree
가 파일을 무시하고 디렉토리에 대해서만 보고합니다.
트리 -d
“이미지”라는 단일 하위 디렉토리가 있습니다.
광고
“directories.txt”라는 파일에는 만들고자 하는 일부 디렉토리의 이름이 있습니다. cat
를 사용하여 내용을 볼 수 있습니다.
고양이 디렉토리.txt
이것을 xargs
의 입력 데이터로 사용할 것입니다. 우리가 할 명령은 다음과 같습니다.
<사전>고양이 디렉토리.txt | xargs -I % sh -c ‘에코 %; mkdir %’
다음과 같이 나뉩니다.
<울>
xargs
로 푸시합니다.-c
(명령)는 쉘이 명령줄에서 명령을 읽도록 지시합니다.xargs
에 의해 전달된 디렉토리 이름으로 대체됩니다. echo
명령은 디렉토리 이름을 출력합니다. mkdir
명령은 디렉토리를 생성합니다.디렉토리가 하나씩 나열됩니다.
tree
를 한 번 더 사용하여 디렉토리가 생성되었는지 확인할 수 있습니다.
트리 -d
여러 위치에 파일 복사
xargs
를 사용하여 단일 명령으로 파일을 여러 위치에 복사할 수 있습니다.
두 디렉토리의 이름을 입력 매개변수로 xargs
에 파이프할 것입니다. xargs
가 작업 중인 명령에 한 번에 이러한 매개변수 중 하나만 전달하도록 지시합니다.
이 경우 명령어는 cp
입니다. 따라서 효과는 cp
를 두 번 호출하는 것입니다. 매번 두 디렉토리 중 하나를 명령줄 매개변수로 사용합니다. 이를 가능하게 하는 xargs
매개변수는 -n
(최대 수) 옵션입니다. 우리는 이것을 하나로 설정할 것입니다.
광고
또한 cp
와 함께 -v
(상세) 옵션을 사용하여 무슨 일이 일어나고 있는지 보고합니다.
<사전>에코 ~/Backups/ ~/Documents/page-files/ | xargs -n 1 cp -v ./*.페이지
파일은 한 번에 한 디렉터리씩 두 디렉터리에 복사됩니다. cp
는 각 파일 복사 작업을 보고하여 이러한 작업이 수행되는 것을 볼 수 있습니다.
중첩 디렉토리의 파일 삭제
파일 이름에 공백과 개행 문자와 같은 이상한 문자가 있는 경우 xargs
는 이를 올바르게 해석할 수 없습니다. -0(null terminator) 옵션을 사용하여 이 문제를 극복할 수 있습니다. 이것은 xargs
가 null 문자를 파일 이름의 최종 구분 기호로 사용하도록 지시합니다.
이 예에서는 찾기
를 사용할 것입니다. find
에는 공백과 파일 이름의 이상한 문자를 처리하는 자체 옵션이 있습니다. -print0
(전체 이름, null 문자) 옵션입니다.
<사전>찾다 . -이름 “*.png” -유형 f -print0 | xargs -0 rm -v -rf “{}”
다음과 같이 나뉩니다.
<울>
find
는 현재 디렉토리 “.”에서 검색합니다. 파일인 “*.png”와 이름이 일치하는 개체의 경우(type -f
).-v
). 재귀적(-r)이고 중첩된 하위 디렉토리를 살펴보고 프롬프트 없이 파일을 제거합니다(-f
). “{}”는 각 파일 이름으로 대체됩니다.모든 하위 디렉토리를 검색하고 검색 패턴과 일치하는 파일을 삭제합니다.
중첩 디렉토리 제거
중첩된 하위 디렉터리 집합을 제거하려고 한다고 가정해 보겠습니다. tree
에서 볼 수 있습니다.
트리 -d
<사전>찾다 . -name “level_one” -유형 d 인쇄 | xargs -o rm -v -rf “{}”
광고
이 명령은 find를 사용하여 현재 디렉토리 내에서 재귀적으로 검색합니다. 검색 대상은 “level_one”이라는 디렉토리입니다. 디렉토리 이름은 xargs
를 통해 rm
으로 전달됩니다.
이 명령과 이전 명령 사이의 유일한 중요한 변경 사항은 검색어가 최상위 디렉토리의 이름이고 -type d
가 find
에게 다음을 찾도록 지시한다는 것입니다. 파일이 아닌 디렉토리
각 디렉토리의 이름은 제거될 때 인쇄됩니다. tree
로 확인할 수 있습니다.
트리 -d
중첩된 모든 하위 디렉토리가 삭제됩니다.
하나의 파일 형식을 제외한 모든 파일 삭제
find
, xargs
및 rm
을 사용하여 유지하려는 한 유형을 제외한 모든 파일을 삭제할 수 있습니다. 다소 직관적이지 않지만 삭제하려는 파일 유형의 이름이 아니라 유지하려는 파일 유형의 이름을 제공합니다.
-not
옵션은 검색 패턴과 일치하지 않는 파일 이름을 반환하도록 find
에 지시합니다. xargs
와 함께 -I
(초기 인수) 옵션을 다시 한 번 사용하고 있습니다. 이번에는 우리가 정의하는 교체 문자열 토큰이 “{}”입니다. 이것은 이전에 생성한 “%”인 문자열 교체 토큰과 정확히 동일하게 작동합니다.
<사전>찾다 . -type f -not – 이름 “*.sh” -print0 | xargs -0 -I {} rm -v {}
ls
로 확인할 수 있습니다. 디렉토리에 남은 파일은 “*.sh” 검색 패턴과 일치하는 파일뿐입니다.
ls -l
Xargs로 아카이브 파일 생성
find
를 사용하여 파일을 검색하고 xargs
를 통해 tar
로 전달하여 아카이브 파일을 생성할 수 있습니다.
광고
현재 디렉토리에서 검색할 것입니다. 검색 패턴은 “*.page”이므로 “.page” 파일을 찾습니다.
찾기 ./ - 이름 "*.page" -type f -print0 | xargs -0 -tar -cvzf page_files.tar.gz
보관 파일이 생성됨에 따라 파일이 예상대로 나열됩니다.
데이터 중재자
때로는 물건을 쌓을 때 약간의 비계가 필요합니다. xargs
는 정보를 퍼낼 수 있는 명령과 정보를 받아들이도록 만들어지지 않은 명령 사이의 격차를 해소합니다.
xargs
와 find
에는 모두 수많은 옵션이 있습니다. 자세한 내용은 매뉴얼 페이지를 확인하는 것이 좋습니다.
주제와 관련된 추가 정보 보기 리눅스 xargs
Using the Shell: xargs
- 저자: Calin Leafshade – Linux & Productivity Videos
- 게시일: 2019-12-29
- 평점: 4 ⭐ ( 8633 평점 )
- 검색 결과 일치: A short video about using the linux terminal. In this video we look at the command xargs. xargs is used to pull data from standard input and put it into a command as an argument.
My dotfiles: https://github.com/calinleafshade/dots
Twitter: https://www.twitter.com/@calinleafshade► Ending music by octarob
https://www.soundcloud.com/octarob► Wallpaper credit zedotagger
https://www.deviantart.com/zedotagger/art/Dark-Souls-3-Firelink-601790597
Linux xargs
- 저자: lascrea.tistory.com
- 평점: 4 ⭐ ( 9596 평점 )
- 검색 결과 일치: 기본적인 명령어 뒤에 파이프로 추가하여 사용 파이프 이전에 명령을 인자로 받아 명령어를 실행하는 구조 xargs [옵션] 명령어 옵션 – a : 표준 입력 대신 파일에서 항목을 읽음, 이 옵션을 사용하여 명령을 실행..
Linux : Xargs 사용 방법, 예제, 명령어
- 저자: jjeongil.tistory.com
- 평점: 3 ⭐ ( 3011 평점 )
- 검색 결과 일치: xargs 유틸리티를 사용하여 표준 입력에서 명령을 작성하고 실행할 수 있습니다. 일반적으로 pipe를 통해 다른 명령과 함께 사용된다. xargs를 사용하면 mkdir 및 rm과 같은 명령줄 유틸리티에 표준 입력을 인수로..
Linux에서 xargs 명령을 사용하는 방법
- 저자: choesin.com
- 평점: 4 ⭐ ( 7438 평점 )
- 검색 결과 일치:
리눅스 xargs
- 저자: itwiki.kr
- 평점: 5 ⭐ ( 2978 평점 )
- 검색 결과 일치:
초보자를위한 Linux Xargs 명령어의 12 가지 실용 사례
- 저자: ko.linux-console.net
- 평점: 5 ⭐ ( 1998 평점 )
- 검색 결과 일치:
Linux 101 Hacks : Xargs 명령어를 이용한 다양한 활용방법
- 저자: rsec.kr
- 평점: 4 ⭐ ( 8485 평점 )
- 검색 결과 일치: xargs 는 매우 효과적인 명령어로써 출력된 결과를 인자값으로 이용하여 다른 커맨드에서 활용할 수 있게 만들어 줍니다. 아래 예제와 같이 강력하게 사용할 수 있습니다. xags 명령어의 다양한 예제와 활용법을 공유하도록 하겠습니다
이 카테고리의 더 많은 기사 보기: 컴퓨터 팁