find -maxdepth 0 출력을 반환하지 않습니다


17

find -maxdepth 0옵션 사용 방법을 이해하려고합니다 .

아래 디렉토리 구조가 있습니다.

--> file1
--> parent
          --> child1
                   --> file1
                   --> file2
          --> child2
                   --> file1
                   --> file2
          --> file1

이제 find아래와 같이 명령을 실행 합니다.

find ./parent -maxdepth 0 -name "file1"
find ./ -maxdepth 0 -name "file1"
find . -maxdepth 0 -name "file1"

위의 find명령이 없으면 file1 이 리턴됩니다.

의 맨 페이지 find에서 아래 정보를 봅니다.

-maxdepth 0은 테스트 및 조치 만 명령 행 인수에 적용 함을 의미합니다.

-maxdepth 0옵션이 있는 예제를 검색했지만 적절한 예제를 찾을 수 없습니다.

find버전은

find --version
find (GNU findutils) 4.4.2

누군가가 어떤 경우에 -maxdepth 0유용한 옵션이 있는지 알려주시겠습니까?

편집하다

아래 명령을 실행하면 file1 이 두 번 나열됩니다. 이것은 이런 식으로 작동합니까?

find . file1 -maxdepth 1 -name "file1"
./file1
file1

답변:


24

file1현재 디렉토리에 있다고 가정 해 봅시다 . 그때:

$ find . -maxdepth 0 -name "file1"
$ find . file1 -maxdepth 0 -name "file1"
file1

이제 문서에 나와있는 내용을 살펴 보겠습니다.

-maxdepth 0은 테스트 및 조치 만 명령 행 인수에 적용 함을 의미합니다.

위의 첫 번째 예에서는 디렉토리 만 .명령 행에 나열됩니다. 때문에 .이름이없는 file1, 아무 것도 출력에 나열되지 않습니다. 위의 두 번째 예에서 모두 .file1명령 줄에 나열되어 있고 file1matches 때문에 -name "file1"출력에 반환되었습니다.

다시 말해, 디렉토리 나 하위 디렉토리를 검색 -maxdepth 0하지 않습니다 . 대신 명령 행에 명시 적으로 나열된 파일 중에서 일치하는 파일 만 찾으십시오.

예제에서, 디렉토리 만 명령 행에 나열되었고 이름이 지정되지 않았습니다 file1. 따라서 출력이 없습니다.

일반적으로 많은 파일과 디렉토리는 명령 행에서 이름을 지정할 수 있습니다. 예를 들어, find명령 행에 11 개의 파일과 디렉토리가 있는 명령을 시도하십시오 .

$ ls
d1  file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
$ find d1 file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 -maxdepth 0 -name "file1"
file1

겹치는 경로

치다:

$ find . file1 -maxdepth 0 -iname file1
file1
$ find . file1 file1 -maxdepth 0 -iname file1
file1
file1
$ find . file1 file1 -maxdepth 1 -iname file1
./file1
file1
file1

Ramesh가 지적했듯이 분명히 find명령 줄에 지정된 각 경로를 따르고 경로가 동일한 파일로 이어 지더라도 경로가 동일한 파일로 연결 . file되거나 경로가 정확히 중복 된 경우에도 일치하는 항목을 찾습니다 file1 file1.


감사. 그러나 명령 줄에서 파일 이름을 어떻게 전달할 수 있습니까?
Ramesh

좋은 지적. 업데이트 된 답변을 참조하십시오. 첫 시험 전에 원하는만큼 넣을 수 있습니다. 예를 들면 다음과 같습니다 find * -maxdepth 0 -name "file1".. 는 *명령 행에서 현재 디렉토리에있는 모든 파일을 나열합니다.
John1024

1
@Ramesh Answer 더 나은 설명과 예제로 다시 업데이트되었습니다.
John1024

다시 감사합니다. 최신 업데이트에 대한 자세한 내용으로 질문을 업데이트했습니다.
Ramesh

@Ramesh 나는 그것을 문서화 할 수는 없지만 당신이하는 것과 같은 행동을 보았습니다 : find명령 줄의 각 경로를보고 중복 된 경우에도 각 경로에서 일치하는 것을보고합니다.
John1024
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.