이 명령은 inotify 작업자(그렇게 말하셨나요?) 등의 파이프라인의 일부입니다. 나는 inotify 사용에 대한 답을 찾기 위해 전체 (매우 유용한!) 명령을 분석하도록 요청하는 것보다 게시물당 하나의 질문 전략에 더 적합하다고 생각합니다.
xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}'
문서에 따르면 구문은 다음과 같습니다.
xargs [options] [command [initial-arguments]]
-I 바꾸기-str 초기 인수의 바꾸기-str 항목을 표준 입력에서 읽은 이름으로 바꿉니다. 또한 따옴표가 없는 공백은 항목을 종료하지 않으며 대신 구분 기호는 개행 문자입니다. -x 및 -L을 의미합니다.
교정기에 진드기가 있는 이유는 무엇입니까?
그리고 대괄호는 명령의 출력으로 채워지죠 ps
?
--no-headers
- 매우 명백하다-o
- 주문 옵션...%p
- 프로세스 ID(pid)%U
- 사용자 ID%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
-
교정기에 진드기가 있는 이유는 무엇입니까?
쉘이 손상되는 것을 방지하기 위해 일부 쉘에서는 특수한 문자 순서로 해석될 수 있으며 대신에 다른 것을 사용하기로 결정할 수도 있습니다
'{}'
. -
두 번째 pid 목록은
'{}'
무엇을 하며 어떤 값을 갖나요?두 번째는
'{}'
실제로 xargs가 실행할 명령 내부에 있습니다. 여기서 읽은 내용으로{}
대체됩니다.xargs
stdin
-
$foo?
아니요. 열려 있는 모든 파일 설명자에서 명령에 의해 생성된 루프(루프)를 이해 하고 소속 프로세스의 PID를 포함하여
for
전체 경로(부분)를 얻으십시오 .readlink
그런 다음 이 목록을 가져와 inotify(부분)를 참조하는 항목을 필터링하고grep
경로( )에서 PID를 추출합니다.cut
각 줄은xargs
자리 표시자로 대체됩니다. -
이 맥락에서 선택이란 무엇을 의미합니까? *