도구 끝에 있는 "*"의 의미를 찾아보세요.

도구 끝에 있는 "*"의 의미를 찾아보세요.

최근에 특정 명령이 숨겨진 폴더를 건너뛰는 이유를 확인하라는 요청을 받았는데 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디렉터리가 검색되고 디렉터리 안이나 아래에 있는 모든 항목이 검색됩니다.

관련 정보