내가 아는 한, grep
내용에 문자열이 포함된 파일을 검색하는 데에만 사용할 수 있습니다.
이름에 문자열이 포함된 파일을 검색하는 데 사용할 수 있습니까? 맨페이지를 읽었지만 그렇게 생각하지 않습니다.
grep
[gri:p] 또는 [grep](IPA 표기법)으로 도 발음되나요? 나는 전자를 읽었습니다.
답변1
당신은 다음을 찾고 있는 것 같습니다 find
:
find . -type f -name "*foo*"
foo
이름이 포함된 파일 이름은 현재 디렉터리와 하위 디렉터리에서 검색됩니다 .
find . -maxdepth 1 -type f -name "*foo*"
foo
현재 디렉터리에 포함된 파일 이름만 찾습니다 .
답변2
find
파일 이름 목록을 생성한 후 구문 분석하는 데 사용됩니다 grep
.
find . | grep 'stack[oO0]verfl[oO0]w'
파일 이름 목록 자체가 파일인 파일 시스템이 없다면 혼자서 이 작업을 수행하는 방법을 모르겠습니다 grep
.
답변3
재미를 위해 grep
자체를 사용하여 현재 디렉터리에 (비어 있지 않은) 파일 이름을 생성하고, grep
원하는 파일을 찾기 위해 다른 파일을 생성할 수 있습니다.
grep -l . * 2>/dev/null | grep 'your_pattern'
옵션을 제공하지 않고 디렉토리를 검색하도록 요청하면 불평을 하기 2>/dev/null
때문에 이는 필수입니다.grep
-r
경고 사항: 이름에 개행 문자가 포함된 파일에서는 제대로 작동하지 않으며 점(숨겨진) 파일과 빈 파일은 무시됩니다.find
여기서는 이것이 올바른 접근 방식입니다.
답변4
귀하의 질문에 대답하자면, 아니오입니다. Grep은 파일 이름으로 검색할 수 없으며 제공된 텍스트 데이터만 검색할 수 있습니다. 따라서 기본적으로 2가지 옵션이 있습니다 grep
.
사용자가 제공한 파일 목록을 검색한 다음 grep
각 파일을 차례로 열어 찾도록 지시한 패턴을 찾거나 표준 입력을 통해 데이터 스트림을 공급할 수 있습니다.
두 경우 모두 grep
입력 소스(STDIN 또는 파일) 주변의 "메타데이터"를 볼 수 없으며 해당 내용만 볼 수 있습니다.