최근에 특정 명령이 숨겨진 폴더를 건너뛰는 이유를 확인하라는 요청을 받았는데 find
문제는 다음과 같이 경로 끝에 와일드카드가 있는 것을 발견했습니다.
find /path_to_folder/*
위 명령의 출력에는 숨겨진 폴더를 건너뛰고 일반 파일과 폴더만 표시됩니다.
하지만 우리가 원한다면
find /path_to_folder/
모든 파일과 폴더(숨겨진 파일 포함)를 가질 수 있습니다.
누군가 이 동작을 이해하도록 도와주거나 자세한 내용을 찾을 수 있는 곳을 알려줄 수 있습니까? 매뉴얼을 검색해 보았지만 find
명확한 답을 얻지 못했습니다.
답변1
이 유틸리티는 하나 이상의 검색 경로를 사용합니다. 이는 및 등의 조건자를 사용하여 find
추가 테스트를 지정하기 전에 유틸리티에 대한 첫 번째 인수입니다 .-name
-type
를 사용하면 find /path_to_folder/*
쉘은 와일드카드 패턴을 /path_to_folder/*
일치하는 경로 이름 목록으로 확장합니다. 이들 각각이 검색됩니다 find
. *
기본적으로 패턴 끝에 있는 이름은 숨겨진 이름으로 확장되지 않습니다. 유틸리티 는 각 검색 경로를 탐색하여 숨겨진 이름을 포함하여 그 아래에 있는 모든 이름을 찾습니다. 그러나 해당 경로 이름을 지정하지 않았기 때문에 자체적으로 find
검색하지는 않습니다 ./path_to_folder
를 사용할 때 경로 이름을 검색 경로로 find /path_to_folder/
지정합니다 . find
유틸리티 는 숨겨진 이름을 포함하여 디렉터리와 해당 하위 디렉터리를 find
탐색합니다 . 이 경우 이 경로 이름을 검색 경로로 지정했기 때문에 /path_to_folder
숨겨진 이름을 직접 찾습니다 ./path_to_folder
요약:
/path_to_folder/*
셸이 일치하는 숨겨진 이름이 아닌 모든 이름의 목록으로 확장되는 와일드카드 패턴입니다/path_to_folder
. 아래 이름은 검색 경로/path_to_folder
로 사용되지만 목록에는 포함되지 않습니다.find
/path_to_folder
/path_to_folder/
단일 경로 이름으로 사용하면find
디렉터리가 검색되고 디렉터리 안이나 아래에 있는 모든 항목이 검색됩니다.