find 명령에 점이 왜 있습니까?

find 명령에 점이 왜 있습니까?

일반적으로 표시되는 명령은 find다음과 같습니다.

$ find . -name foo.txt

현재 디렉터리부터 검색이 시작되는 경우. 내 컴퓨터(Ubuntu, Cygwin)에서 동일한 결과를 얻었지만 pip가 없음을 발견했습니다.

보통 왜 포함되나요? 이것은 단지 명시적인 규칙인가요, 아니면 일부 시스템에서 이를 요구합니까?

답변1

일부 버전* find에서는 검색을 시작할 디렉터리인 경로 매개변수를 제공해야 합니다. 점은 .단순히 현재 디렉터리, 일반적으로 검색하려는 위치를 나타냅니다.

이를 검색 기반으로 사용하려는 경로로 바꿀 수 있습니다. find의 일부 버전에서는 경로 인수가 없으면 현재 디렉토리가 암시되기 때문에 이 옵션을 유지할 수 있습니다.

man find셸에서 실행하여 매개변수에 대한 세부정보를 얻을 수 있습니다 . 예를 들어사용량 요약내 표현에서는 경로 매개변수가 선택사항입니다(대괄호 안 []).

   find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

find인수 없이 my를 실행 하면 현재 폴더에서 시작하는 모든 파일과 디렉터리가 반환됩니다. 귀하의 예에서는 검색이 .표현식으로 시작하고 이를 -name foo.txt검색 필터 중 하나로 포함해야 한다고 명시적으로 명시하고 있습니다.

* 모두 주목할 만한 점은BSD 변종그리고 무엇이든 엄격하게 준수해야 합니다.POSIX 표준.GNU 찾기허용하는 것은 선택 사항입니다.

답변2

예를 들어 AIX 버전의 find에는 경로가 필요하며 경로가 제공되지 않으면 실행되지 않습니다.

# oslevel -s
5300-08-03-0831
# find -name bob
Usage: find [-H | -L] Path-list [Expression-list]

# oslevel -s
6100-03-01-0921
# find -name bob
Usage: find [-H | -L] Path-list [Expression-list]

일부 AIX 시스템에는 경로 없이도 대처할 수 있는 GNU find가 설치되어 있을 수 있지만,

# oslevel -s
6100-03-01-0921
# /opt/freeware/bin/find -version
GNU find version 4.1

관련 정보