집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 xargs 사용법에 대한 자세한 설명
xargs는 Linux에서 매우 유용한 명령입니다. 다른 명령과 함께 사용되는 경우가 많으며 매우 유연합니다.
xargs는 명령에 매개변수를 전달하는 필터이자 여러 명령을 결합하는 도구입니다. 필터와 명령으로 처리할 수 있을 만큼 작은 청크로 분할합니다. 따라서 이 명령은 역참조를 대체하는 강력한 방법이기도 합니다. 일반적으로 너무 많은 매개변수를 사용하는 명령을 대체하면 xargs는 일반적으로 성공합니다.
xargs의 기본 명령은 echo입니다. 이는 파이프를 xargs에 전달하는 것을 의미합니다. 입력에는 줄 바꿈과 공백이 포함되지만 xargs 처리를 통해 줄 바꿈 및 공백은 공백으로 대체됩니다. 예:
bash$ ls -l
total 0
-rwxr-xr-x 2 root root 4096 2009- 02-23 090218.txt
-rwxr-xr- x 2 루트 루트 12288 2009-06-08 090607.txt
bash$ ls -l |
bash$ find ~/ mail -type f | /sent-mail-jul-2005: (Linux 문서 프로젝트 사이트, rtf 버전) ./sent-mail-jul-2005: 제목: Bozo의 Windows/Linux 기사에 대한 비판 . . ls | xargs - p -l gzip은 gzip을 사용하여 한 번에 하나씩 참고: 흥미로운 xargs 옵션은 -n NN이며, NN은 매개변수 수 ls | xargs -n 8 echo에서 현재 파일의 모든 파일을 나열합니다. 참고: 또 다른 유용한 옵션은 -0입니다. find -print0 또는 grep - lZ를 사용하면 공백이나 따옴표가 포함된 인수를 처리할 수 있습니다. find / -type f -print0 | xargs -0 grep -liwZ GUI | xargs -0 rm -f grep -rliwZ GUI / | -0 rm -f 위 두 줄 모두 "GUI"가 포함된 파일을 삭제하는 데 사용할 수 있습니다. -i는 xargs에 전달된 find 결과가 {}로 대체된다는 의미입니다. -I i와 비슷하다고 생각합니다. -i는 -I {}로 대체될 수 있다고 할 수 있습니다. -p Interactively 질문 y 명령의 각 실행을 확인합니다. -t는 실행 전에 각 명령을 에코합니다. 매개변수 -s 및 -x도 있습니다. 자세한 내용은 설명서를 확인하세요. 다음은 이 파일의 줄 수를 계산하려는 또 다른 예입니다.$ file * | grep ASCII | cut -d":" -f1 | 2_reco_14491.trc43 dba102_rvwr_14518.trc77122 total (참고: 위 작업은 다음 명령으로도 완료할 수 있습니다.) $ wc -l 'file * | grep ASCII | cut -d":" -f1 | grep ASCII | cut -d":" -f1' 이 xargs 버전은 개념을 설명하는 데 사용됩니다. Linux는 여러 가지 방법으로 동일한 작업을 수행할 수 있으며 상황에 가장 적합한 방법을 사용합니다. 이 방법을 사용하면 디렉터리의 파일 이름을 빠르게 바꿀 수 있습니다. $ ls | xargs -t -i mv {} {}.bak -i 옵션은 xargs에게 {}를 각 항목의 이름으로 바꾸도록 지시합니다. -t 옵션은 명령을 실행하기 전에 xargs에 명령을 인쇄하도록 지시합니다. 또 다른 유용한 작업은 vi를 사용하여 편집할 파일을 여는 것입니다. $ file * | grep ASCII | cut -d":" -f1 | xargs vi이 명령은 vi 파일 열기를 사용합니다. 하나씩. 이 명령은 여러 파일을 검색하고 편집을 위해 열어야 할 때 매우 편리합니다. 또한 여러 옵션이 있습니다. 아마도 가장 유용한 것은 작업을 대화형으로 만드는 -p 옵션일 것입니다. $ file * | grep ASCII | cut -d":" -f1 | dba102_mmnl_14497.trcdba102_reco_14491.trc dba102_rvwr_14518.trc ?.. .여기서 xarg를 사용하려면 각 명령을 실행하기 전에 확인해야 합니다. "y"를 누르면 명령이 실행됩니다. 파일을 삭제하거나 덮어쓰는 등 파일을 손상시키고 복구할 수 없는 작업을 수행할 때 이 옵션이 유용할 수 있습니다. -t 옵션은 실행할 명령을 표시하는 상세 모드를 사용하며 디버깅 중에 매우 유용한 옵션입니다. xargs에 전달된 출력이 비어 있으면 어떻게 되나요? 다음 명령을 고려하십시오. $ file * | grep SSSSSS | cut -d":" -f1 ; 두 번째 줄에 표시된 대로 xargs에 대한 입력은 -t | 자세한 옵션). 이것이 도움이 될 수 있지만 처리할 항목이 없으면 xargs를 중지할 수 있습니다. $ file * | grep SSSSSS cut -d ":" -f1 | xargs -t -r wc -l $실행할 항목이 없으면 명령이 종료됩니다.
rm 명령(xargs 명령에 인수로 전달됨)을 사용하여 파일을 삭제한다고 가정합니다. 그러나 rm은 제한된 수의 인수만 허용합니다. 매개변수 목록이 해당 제한을 초과하면 어떻게 되나요? xargs의 -n 옵션은 단일 명령줄의 인수 수를 제한합니다.
아래에서는 각 명령줄을 두 개의 인수로만 제한하는 방법을 보여줍니다. 다섯 개의 파일이 xargs ls -ltr 에 전달되더라도 한 번에 두 개의 파일만 ls -ltr 에 전달됩니다.
$ 파일 * | grep ASCII | cut -d":" -f1 | 1 oracle dba 738 8월 10일 19:18 dba102_cjq0_14493.trc
-rw-r--r-- 1 oracle dba 2410225 8월 13일 :31 Alert_DBA102.log
ls -ltr dba102_mmn l_14497.trc dba102_reco_14491.trc
-rw-r------ 1 oracle dba 5386163 8월 10일 17:55 dba102_mmnl_14497. trc
-rw-r-- --- 1 oracle dba 6808 8월 13일 05:21 dba102_reco_14491.trc
ls- ltr dba102_rvwr_14518.trc
-rw-r----- 1 oracle dba 2087 8월 10일 04:30 dba102_rvwr _14518.trc
이 방법을 사용하면 디렉터리에 있는 파일의 이름을 빠르게 바꿀 수 있습니다.
위 내용은 Linux에서 xargs 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!