일반 파일과 디렉토리를 모두 찾으십시오


9

디렉토리와 파일 형식의 파일을 찾도록 찾으려면 어떻게 알 수 있습니까?

find -type fd

이것은 휴리스틱 암흑 시대와 같습니다.

답변:


12

사용할 수있는 명령은 다음과 같습니다.

find -type f -or -type d

7
또는 find -type f -o -type dPOSIX 호환 대안의 경우.
manatwork

$ find을 실행할 때 약간의 문제가 발생했습니다. -type d-또는 -type f-및 -iname "vision"그것은 내가 기대하는 것과 정확히 일치하지 않습니다. 다른 것을 놓치고 있습니까!
James

2
-a가 -o보다 우선합니다. 괄호를 사용하십시오 (그러나 쉘에서는 이스케이프 처리하십시오). 비표준 또는-를 사용할 필요가 없습니다.
Stéphane Chazelas

내가`find 시도하면. -type d 또는 -type f -name 'abc'find . I get an error.. : 경로가 expression :`. 앞에 와야합니다. 왜 그런지?
alpha_989

1
@ alpha_989 -이전에 누락 or되었습니까?
Mateusz Piotrowski

2

tl : dr

사용하다 find . -name "*string*" -type f -o -name "*string*" -type d

설명

-o 명령 or은 파일 경로 뒤의 인수를 find . -name "*string*" -type f -o -type d계산 하여 계산합니다 find . (-name "*string*" -type f) -o (-type d). 이러한 이유로 다음을 지정해야합니다.

대부분의 사용자는 다음과 같은 것을 원할 것입니다

find . -name  "*string*" -type f -o -name "*string*" -type d

어느 것으로 계산

find . (-name  "*string*" -type f) -o (-name "*string*" -type d)

구문 세부 사항 찾기

-name "*string*"문자열이 포함 된 이름을 검색 string합니다.


1

GNU find를 사용하는 경우 다음 솔루션이 적합 할 수 있습니다.

find -type d,f

자세한 내용은 다음 man find을 참조하십시오.

한 번에 둘 이상의 유형을 검색하려면 쉼표 ,(GNU 확장자) 로 구분 된 조합 된 유형 문자 목록을 제공 할 수 있습니다 .


2
GNU find버전 4.7.0 사용 ,. 지원하지 않는 것 같습니다 . 오류 메시지는find: Arguments to -type should contain only one letter.
alpha_989
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.