이름이 문자열 인 모든 파일 찾기
파일 이름에 문자열이 포함 된 현재 디렉토리에서 파일을 반환하는 명령을 찾고 있습니다. 내가 본 locate
과 find
찾을 수있는 명령 파일은 무엇인가로 시작 first_word*
또는 무언가로 끝나는 *.jpg
.
파일 이름에 문자열이 포함 된 파일 목록을 어떻게 반환합니까?
예를 들어, 2012-06-04-touch-multiple-files-in-linux.markdown
현재 디렉토리의 파일 인 경우 입니다.
이 파일과 문자열을 포함하는 다른 파일을 어떻게 반환 할 수 touch
있습니까? 다음과 같은 명령 사용find '/touch/'
사용 find
:
find . -maxdepth 1 -name "*string*" -print
maxdepth 1
"string"을 포함 하는 현재 디렉토리에서 모든 파일을 찾고 ( 재귀 적이라면 삭제 ) 화면에 인쇄합니다.
':'이 포함 된 파일을 피하려면 다음을 입력하십시오.
find . -maxdepth 1 -name "*string*" ! -name "*:*" -print
사용하고 싶지만 grep
(파일 내용을 확인하고 싶지 않은 한 필요하지 않다고 생각하는 경우) 다음을 사용할 수 있습니다.
ls | grep touch
그러나 반복 find
합니다. 귀하의 작업에 더 좋고 깨끗한 솔루션입니다.
다음과 같이 grep을 사용하십시오.
grep -R "touch" .
-R
재귀를 의미합니다. 하위 디렉토리로 들어 가지 않으려면 생략하십시오.
-i
"대소 문자 무시"를 의미합니다. 시도해 볼 가치가 있습니다.
-maxdepth
옵션은 이전에해야 -name
다음과 같은 옵션을 선택합니다.,
find . -maxdepth 1 -name "string" -print
find $HOME -name "hello.c" -print
"hello.c"라는 파일이 있는지 전체 $HOME
(예 /home/username/
:) 시스템을 검색하고 해당 경로 이름을 표시합니다.
/Users/user/Downloads/hello.c
/Users/user/hello.c
그러나 일치하지 않습니다 HELLO.C
나 HellO.C
. 대소 문자를 구분하지 않으려면 -iname
다음과 같이 옵션을 전달하십시오 .
find $HOME -iname "hello.c" -print
샘플 출력 :
/Users/user/Downloads/hello.c
/Users/user/Downloads/Y/Hello.C
/Users/user/Downloads/Z/HELLO.c
/Users/user/hello.c
-type f
파일 만 검색 하려면 옵션을 전달하십시오.
find /dir/to/search -type f -iname "fooBar.conf.sample" -print
find $HOME -type f -iname "fooBar.conf.sample" -print
이 -iname
버전의 find 명령 (OS X 포함) GNU 또는 BSD에 중 하나를 사용할 수 있습니다. find 명령 버전이을 지원하지 않으면 command를 -iname
사용하여 다음 구문을 시도하십시오 grep
.
find $HOME | grep -i "hello.c"
find $HOME -name "*" -print | grep -i "hello.c"
또는 시도
find $HOME -name '[hH][eE][lL][lL][oO].[cC]' -print
샘플 출력 :
/Users/user/Downloads/Z/HELLO.C
/Users/user/Downloads/Z/HEllO.c
/Users/user/Downloads/hello.c
/Users/user/hello.c
문자열이 이름의 시작 부분에 있으면 이렇게 할 수 있습니다
$ compgen -f .bash
.bashrc
.bash_profile
.bash_prompt
이미 제공된 많은 솔루션의 대안은 glob를 이용하는 것입니다 **
. 당신이 사용하는 경우 bash
옵션과 함께 globstar
( shopt -s globstar
) 또는를 사용합니다 zsh
, 당신은 단지 글로브 사용할 수 있습니다 **
이것에 대한합니다.
**/bar
재귀 디렉토리에서 이름이 지정된 파일을 검색합니다 bar
( bar
현재 디렉토리 의 파일 을 포함 할 가능성이 있음 ). 이것은 동일한 경로 세그먼트 내에서 다른 형태의 글 로빙과 결합 될 수 없습니다. 이 경우 *
작업자는 일반적인 효과로 되돌아갑니다.
Note that there is a subtle difference between zsh
and bash
here. While bash
will traverse soft-links to directories, zsh
will not. For this you have to use the glob ***/
in zsh
.
find / -exec grep -lR "{test-string}" {} \;
grep -R "somestring" | cut -d ":" -f 1
참고URL : https://stackoverflow.com/questions/11328988/find-all-files-with-name-containing-string
'IT story' 카테고리의 다른 글
여러 조건이있는 AngularJS ng-if (0) | 2020.06.10 |
---|---|
C 스타일 배열에서 std :: vector를 초기화하는 방법은 무엇입니까? (0) | 2020.06.10 |
수집 (0) | 2020.06.10 |
WebSocket과 순수 TCP의 근본적인 차이점은 무엇입니까? (0) | 2020.06.10 |
WCF 추적을 설정하는 방법은 무엇입니까? (0) | 2020.06.10 |