-name
및 선택적 매개변수입니까 -exec
아니면 비옵션 매개변수입니까 find
? 이는 짧은 옵션처럼 보이며 제가 정확하게 기억한다면 조회 표현식이라고 합니다. 예를 들어,
find . -name "*.txt" -exec echo {} \;
답변1
이 find
명령에는 두 가지 옵션만 있습니다.POSIX에서는( -H
, -L
) 또는 5개GNU에서는(반품 -P
,-D
debug_opt
, -O#
). 다른 모든 매개변수는 옵션이 아니므로 옵션 매개변수가 아닙니다.
옵션이 있다는 점은 주목할 가치가 있습니다.find
앞서 있다경로 및 모든 find 표현식은 다음 경로를 따라야 합니다 find [option...] path... [expression...]
. (GNU find에는 "옵션"이라고도 하는 몇 가지 추가 기본 항목이 있습니다. 예를 들어 -maxdepth
, 실제로는 옵션이 아니며 표현식 섹션 내부에 표시되지만 경고 메시지를 그렇게 부르면 이해하기 더 쉬울 것이라고 생각합니다.)
답변2
-name
, -exec
잠깐만 -print
요옵션find
유틸리티 회사 에 있지만피연산자. 하나의 피연산자는
일반적으로 처리를 완료하는 데 필요한 정보를 유틸리티에 제공하는 개체로 사용되는 명령에 대한 인수입니다. 피연산자는 일반적으로 명령줄의 옵션을 따릅니다.
(에서POSIX 정의), 즉 유틸리티에 수행할 작업을 알려주는 옵션이 아닙니다(예: file
명령에서 삭제할 파일을 rm file
알려주는 등 rm
).
find
이 유틸리티에 대한 POSIX 표준 설명이 피연산자를 호출하세요예비 선거이는 BSD 시스템의 이름이기도 합니다.
GNU find
매뉴얼에서는 다음과 같이 불립니다.표현그리고 목적에 따라 여러 그룹으로 나뉩니다.
- 테스트(예
-name
: ,-mtime
) - 작업(예:
-delete
,-print
) - 전역 옵션(예:
-maxdepth
,-depth
) - 위치 옵션(예
-follow
: ) - 연산자(예:
-not
,-and
)
POSIX 표준 find
에는 두 가지 실제 옵션만 -H
있습니다 -L
. 이는 심볼릭 링크를 처리하는 방법과 관련이 있습니다.
POSIX 표준은 유틸리티에 대해 다중 문자 옵션이나 "긴 옵션"을 정의하지 않습니다. 이는 구현 시 긴 옵션을 추가하는 것을 막지 않으며, GNU 유틸리티는 특히 편의 기능을 확장하기 위해 표현력 있는 긴 옵션을 추가하는 것으로 알려져 있습니다.