`-name` 및 `-exec` 옵션이 `find`에 대한 옵션이 아닌 인수입니까?

`-name` 및 `-exec` 옵션이 `find`에 대한 옵션이 아닌 인수입니까?

-name및 선택적 매개변수입니까 -exec아니면 비옵션 매개변수입니까 find? 이는 짧은 옵션처럼 보이며 제가 정확하게 기억한다면 조회 표현식이라고 합니다. 예를 들어,

find . -name "*.txt" -exec echo {} \;

답변1

find명령에는 두 가지 옵션만 있습니다.POSIX에서는( -H, -L) 또는 5개GNU에서는(반품 -P,-Ddebug_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 유틸리티는 특히 편의 기능을 확장하기 위해 표현력 있는 긴 옵션을 추가하는 것으로 알려져 있습니다.

관련 정보