Linux는 DOS“dir / s / b filename”과 동일합니까?


17

'filename'과 일치하는 현재 디렉토리 내 또는 아래에 모든 파일 / 디렉토리를 나열하십시오.

답변:


28

직접적인 동등한 것은

find . -iname <filename>

<filename>현재 디렉토리에서 호출 된 모든 파일과 디렉토리 및 대소 문자를 무시하고 하위 디렉토리 가 나열됩니다 .

find 버전이 지원하지 않는 -iname경우 -name대신 사용할 수 있습니다 . 달리주의 -iname, -name대소 문자를 구분합니다.

<filename>디렉토리가 아닌 이라는 파일 만 나열하려면 다음을 추가하십시오.-type f

find . -iname <filename> -type f

와일드 카드를 사용하려면 따옴표로 묶어야합니다. 예 :

find . -iname "*.txt" -type f

그렇지 않으면 쉘이 확장합니다.

다른 사람들이 지적했듯이 다음을 수행 할 수도 있습니다.

find . | grep "\.txt$"

grep 와일드 카드보다 강력하지만 구문이 다른 정규식을 기반으로 행을 인쇄합니다.

참조 man findman grep자세한 내용은.


3
<filename>와일드 카드가 포함 된 경우 따옴표를 사용하십시오 (예 :) find . -name '*.txt'.
질 'SO-정지 존재 악마'

@Gilles, 내 답변을 업데이트하여 감사합니다.
Mikel

2
사용자 입력을 <filename>위한 마커로 사용 하는 것은 < and >대부분의 시간이 특정한 의미를 갖는 명령 행 환경에서 나쁜 습관입니다 . filenameFILENAME을 사용하여 강조하는 것이 좋습니다 . 대부분의 사람들은 이해할 것이며, 그렇지 않은 사람들은 자신보다 적거나 큰 부호를 명중하지 않아야한다는 것을 이해하지 못할 때 해를 입힐 수 있습니다.
사용자가 알 수 없음

2
<filename>는 많은 UNIX 문서에서 사용되는 규칙이므로 사람들이 알고있는 것이 유용하다고 생각하지만 FILENAME이해하기가 더 쉽다 는 데 동의합니다 .
Mikel

1
find -iname <filename>이 DOS와 같은 대소 문자를 구분하기 때문에 더
아넬 쿠 리안

8

일부 쉘은을 허용하는데 ls **/filename, 이는 매우 편리합니다.


1
좋은 지적. 최신 버전의 bash에서 실행 shopt -s globstar; echo **/filename은에 해당합니다 find . -name "filename". zsh에서도 작동합니다.
Mikel

이 'ls ** / filename`은 괜찮지 만 한 디렉토리 수준 이상으로 가지 않는 것 같습니다.
Sopalajo de Arrierez

@ sopalajo-de-arrierez 당신이한다면 shopt -s globstar, 아마 당신을 위해 일할 것입니다. 재귀 globbing은 일부 셸에서만 사용할 수있는 기능이며 때로는 기본적으로 설정되어 있지 않습니다.
Shawn J. Goff

Ops ... @ ShawnJ.Goff :이 shopt명령은 옵션을 활성화합니다 globstar on. 이제는 매력처럼 작동합니다. 고마워
Sopalajo de Arrierez

4

당신은 이것을 할 수 있습니다

find . | egrep filename

1
당신은 또한 하나와 그것을 할 수 있습니다 find . -regextype posix-egrep -regex '.*filename.*' 합니다 (만약 내가 모르는 egrep부분이 중요하지만, 당신이 사용 egrep나는 그것을 포함 귀하의 대답)
마이클 Mrozek

grep은 동등한 DOS 명령과 다릅니다. grepDOS 명령은 쉘 와일드 카드를 사용하는 반면 정규식을 사용합니다.
Mikel

1
쉘 글롭은 DOS 와일드 카드와 다릅니다. 예를 들어 find . -name "*.*"DOS 배경에서 기대하는 것을 수행하지 않습니다. 글로브는 알아볼 수있을만큼 가까이 있지만 정규식은 완전히 새로운 짐승입니다.
Jander

무엇 않습니다 *.*.*즉 창 cmd를 현대 도스에서 무엇입니까? 무엇에 대해 *.*.*.*?
ctrl-alt-delor

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.