누군가 이 xargs 명령 구조를 나에게 설명해 줄 수 있습니까?

누군가 이 xargs 명령 구조를 나에게 설명해 줄 수 있습니까?

이 명령은 inotify 작업자(그렇게 말하셨나요?) 등의 파이프라인의 일부입니다. 나는 inotify 사용에 대한 답을 찾기 위해 전체 (매우 유용한!) 명령을 분석하도록 요청하는 것보다 게시물당 하나의 질문 전략에 더 적합하다고 생각합니다.

xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}'

문서에 따르면 구문은 다음과 같습니다.

xargs [options] [command [initial-arguments]]

-I 바꾸기-str 초기 인수의 바꾸기-str 항목을 표준 입력에서 읽은 이름으로 바꿉니다. 또한 따옴표가 없는 공백은 항목을 종료하지 않으며 대신 구분 기호는 개행 문자입니다. -x 및 -L을 의미합니다.

교정기에 진드기가 있는 이유는 무엇입니까?

그리고 대괄호는 명령의 출력으로 채워지죠 ps?

  1. --no-headers- 매우 명백하다
  2. -o- 주문 옵션...
  3. %p- 프로세스 ID(pid)
  4. %U- 사용자 ID
  5. %c- 실행 파일의 간단한 이름

-p pidlist PID로 선택합니다. 그러면 프로세스 ID 번호가 pidlist에 나타나는 프로세스가 선택됩니다. p 및 --pid와 동일합니다.

두 번째 pid 목록은 '{}'무엇을 하며 어떤 값을 갖나요? $foo? select이 경우에는 무엇을 의미합니까?

참고용으로만

이전 코드는 다음과 같습니다.

for foo in /proc/*/fd/*; do readlink -f $foo; done |grep inotify |cut -d/ -f3 |

작성자: envygeekshttps://github.com/atom/atom/issues/2082

감사해요

답변1

  1. 교정기에 진드기가 있는 이유는 무엇입니까?

    쉘이 손상되는 것을 방지하기 위해 일부 쉘에서는 특수한 문자 순서로 해석될 수 있으며 대신에 다른 것을 사용하기로 결정할 수도 있습니다 '{}'.

  2. 두 번째 pid 목록은 '{}'무엇을 하며 어떤 값을 갖나요?

    두 번째는 '{}'실제로 xargs가 실행할 명령 내부에 있습니다. 여기서 읽은 내용으로 {}대체됩니다.xargsstdin

  3. $foo?

    아니요. 열려 있는 모든 파일 설명자에서 명령에 의해 생성된 루프(루프)를 이해 하고 소속 프로세스의 PID를 포함하여 for전체 경로(부분)를 얻으십시오 . readlink그런 다음 이 목록을 가져와 inotify(부분)를 참조하는 항목을 필터링하고 grep경로( )에서 PID를 추출합니다. cut각 줄은 xargs자리 표시자로 대체됩니다.

  4. 이 맥락에서 선택이란 무엇을 의미합니까? *

    https://en.wiktionary.org/wiki/select#Verb

관련 정보