2017-12-17 12 views
-1

이 파일이 있습니다 : find 명령을 이해하기 위해내 디렉토리에

file1.txt fix.log fixRRRRRR.log fixXXXX.log output.txt 

, 내가 원했던 무엇보다도 물건을 많이 시도 와일드 카드 2 개를 사용하십시오. 목표는 f로 시작하고 확장자가 l으로 시작하는 파일을 찾는 것입니다.

$ find . f*.l* 

./file1.txt 
./fix.log 
./fixRRRRRR.log 
./output.txt 
./fixXXXX.log 
fix.log 
fixRRRRRR.log 
fixXXXX.log 

내가 함께 결과에 find . "f*.l*" 찾을 인용 부호를 사용하여 포럼의 답변을 읽어 : '그것은 내가 잘못 뭐하는 거지 find: ‘f*.l*’: No such file or directory

결과

./file1.txt 
./fix.log 
./fixRRRRRR.log 
./output.txt 
./fixXXXX.log 

을 여기서 내 오류입니다 추론?

답변 해 주셔서 감사합니다.

+0

스택 오버플로가 프로그래밍 및 개발 질문을위한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제와는 거리가 먼 것처럼 보입니다. 도움말 센터에서 [여기에서 내가 질문 할 수있는 항목은 무엇입니까?] (http://stackoverflow.com/help/on-topic)를 참조하십시오. 아마도 [Super User] (http://superuser.com/) 나 [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/)가 더 나은 곳이 될 것입니다. – jww

+1

아마도 '찾기'를 원할 것입니다. -name "f * .l *"-print'? ('find '의 GNU 구현은'-print'를 끝낼 수있게 해주지 만, 확장 기능입니다; POSIX'find'가 필요합니다). –

+0

당신의 목표가'find' 명령을 이해하는 것이라면 Wooledge 위키에있는 [Find Using] (http://mywiki.wooledge.org/UsingFind) ([BashFAQ] (http : //mywiki.wooledge.org/BashFAQ/) 및 [BashGuide] (http://mywiki.wooledge.org/BashGuide)). –

답변

2

find는 그렇게 작동하지 않습니다. 일반적으로 find의 전화 양식은 다음과 같습니다.

find [entry1] [entry2] ... [expressions ...] 

여기서 항목은 파일 검색을 시작하는 시작 지점입니다.

귀하의 경우 실제로 표현을 제공하지 않았습니다.

첫 번째 명령 (따옴표 제외)에서 셸은 와일드 카드를 일치하는 파일 목록 (현재 디렉토리)으로 확장 한 다음이 목록을 인수로 find에 전달합니다. 따라서 find . f*.l*은 기본적으로 find . fix.log fixRRRRRR.log fixXXXX.log과 같습니다. 결과적으로 find는 모든 인수를 검색 할 디렉토리/파일로 취급하고 . 아래의 모든 파일을 나열한 다음 모든 파일을 fix.log 아래에 나열합니다 (디렉토리가 아니므로 파일 일뿐입니다). 그 다음에 모든 파일은 fixRRRRRR.log이고 마지막으로 fixXXXX.log에있는 모든 파일입니다.

두 번째 파일 (따옴표 포함)에서는 현재 디렉토리 (.) 아래의 모든 파일을 검색하고 문자 그대로 "f * .l *"파일에 대해 동일하게 시도합니다.

사실 당신은 가능성이처럼 사용할 수있다 "-name"표현 찾고 있습니다 :

find . -name "f*.l*" 
+3

조금 더 설명 : 첫 번째 명령 (따옴표 제외)에서 셸은 와일드 카드를 (현재 디렉토리에있는) 일치하는 파일 목록으로 확장 한 다음 목록을'find'에 전달합니다. 그래서'찾는다. f * .l *'는 본질적으로'find와 같습니다. fix.log fixRRRRRR.log fixXXXX.log'.결과적으로 find는'.', (모든 것) 아래의 모든 파일을 나열하고'fix.log' (모든 파일은 디렉토리가 아니므로 파일 자체 일뿐입니다),'fixRRRRRR.log' 아래의 모든 파일을 나열한 다음 ... –

+0

왜 downvote? –

+0

@GordonDavisson, 감사합니다. 처음에는 그 부분을 놓쳤습니다. –