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
의 man 페이지에서 아래 정보를 볼 수 있습니다.
-maxdepth 0은 테스트 및 작업을 명령 줄 인수에만 적용 함을 의미합니다.
-maxdepth 0
옵션으로 몇 가지 예를 검색했지만 적절한 예를 찾을 수 없습니다.
내 find
버전은 다음과 같습니다.
find --version find (GNU findutils) 4.4.2
누군가 -maxdepth 0
옵션이 유용한 경우에 대한 몇 가지 지침을 제게 제공해 주시겠습니까? ?
편집
아래 명령을 실행하면 file1 이 두 번 나열됩니다.이 방식으로 작동하도록 의도 되었나요?
find . file1 -maxdepth 1 -name "file1" ./file1 file1
Answer
현재 디렉토리에 file1
가 있다고 가정하겠습니다. :
$ find . -maxdepth 0 -name "file1" $ find . file1 -maxdepth 0 -name "file1" file1
이제 문서의 내용을 살펴 보겠습니다.
-maxdepth 0은 onl을 의미합니다. y 명령 줄 인수에 테스트 및 작업을 적용합니다.
위의 첫 번째 예에서 .
는 명령 줄에 나열됩니다. .
에는 file1
라는 이름이 없으므로 출력에 아무것도 나열되지 않습니다. 위의 두 번째 예에서는 .
및 file1
가 모두 명령 줄에 나열되며 file1
는 -name "file1"
와 일치하며 출력에 반환되었습니다.
즉, -maxdepth 0
는 검색 디렉터리 또는 하위 디렉터리가 아닙니다 . 대신 명령 줄에 명시 적으로 나열된 파일 중에서 일치하는 파일 만 찾습니다.
예제에서 디렉터리 만 명령 줄에 나열되고 이름이 file1
. 따라서 출력이 없습니다.
일반적으로 명령 줄에서 많은 파일과 디렉토리의 이름을 지정할 수 있습니다. 예를 들어 여기에서는 명령 줄에 11 개의 파일과 디렉터리가있는 find
명령을 시도합니다.
$ 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
.
댓글
Answer
디렉토리 사용 내에서 비재 귀적으로 파일 (디렉토리 아님)을 찾으려는 경우 :
find . -maxdepth 1 -type f -name "file1" # ./file1
-maxdepth 0
검색하지 않습니다 . find
에서 인수로 제공 한 파일 / 디렉토리 이름 사이에서만 일치를 시도합니다. 예 : 위의 문에서 0
값을 사용하면 file1
를 .
에 일치 시키려고합니다. 일치하지 않습니다. .
대신 *
를 전달하면 bash가 *
를 현재 디렉토리의 파일 목록으로 대체합니다. 일치를 반환합니다.
find * -maxdepth 0 -name "file1"
.*
는 현재 디렉토리의 모든 파일을 명령 줄에 나열합니다.find
가 각각을 살펴 봅니다. 명령 줄 및 보고서의 경로가 중복 된 경우에도 각각 일치합니다.