이름으로 파일 찾기


11

디렉토리 트리에서 재귀 적으로 특정 정규식을 준수하는 이름을 가진 모든 파일을 단일 dired 버퍼로 가져올 수 있습니까?

한 번에 이름을 바꾸거나 삭제할 수 있습니까?


2
`find-name-dired '를 이미 고려 했습니까? (정규 표현식이 아닌 와일드 카드를 사용합니다.)
Marco Wahl

2
답변을 @MarcoWahl로 제출해야합니다. 나는 그것을 할 수 있다는 것을 몰랐다!
Tyler

1
라이브러리 find-dired+.el는 향상된 명령 버전을 제공합니다 find-name-dired. (1) 최소 및 최대 검색 깊이와 (2) 검색에서 제외 할 경로를 지정하는 선택적 인수를 허용합니다.
Drew

답변:


11

와일드 카드

사용하다

M-x find-name-dired

와일드 카드에 따라 파일을 가져옵니다.

"~ / org /"디렉토리에서 접미사가 "org"인 모든 파일을 찾으십시오. 다음을 입력

M-x find-name-dired
~/org
*org

즐길 수 있습니다.

정규식

사용하다

M-x find-dired

정규식에 따라 파일을 가져 오는 데 적합한 인수가 있습니다.

"~ / org /"디렉토리에서 접미사가 "org"인 모든 파일을 찾으십시오. 다음을 입력

M-x find-dired
~/org
-regex ".*org$"

즐길 수 있습니다.


*org수동으로 입력하지 않고 자동으로 확인하는이 프로세스를 자동화 할 수 있습니까?
alper

내가 당신을 올바르게 이해한다면 많은 가능성이 있습니다. 예를 들어 (defun my-find-orgfiles () (interactive) (find-name-dired "~ / myorgs /" "* org")) 명령을 사용하여 init 파일에 넣으십시오. 그런 다음 Mx my-find-orgfiles RET을 사용하십시오. 또는 명령을 키에 바인딩 할 수도 있습니다.
마르코 월

my-find-orgfiles ()"t"와 "Q"// 선택은 모든 및 적용하는 것이 다음에? @Marco Wahl
alper

2

정규식

정규식을 사용하려면을 사용해보십시오 find-lisp-find-dired. 이 명령은 표준 lib에 속합니다. find-lisp 는 elisp로 완전히 작성되었습니다. 즉, 외부 find프로그램 을 설치할 필요가 없습니다 .

예를 들어, 다음은 ~ / lisp 디렉토리에 확장자가 '.el'인 모든 파일을 보여줍니다.

M-x find-lisp-find-dired RET ~/lisp RET \.el\' RET

(경기가 영광입니다 case-fold-search).

와일드 카드

다음 Emacs 릴리즈 (v26.1) 이후 Dired는 파일 이름 인수의 디렉토리 부분에서 wilcard를 지원합니다. 그것은 다음과 같은 작품을 의미합니다.

C-x d ~/soft/*/*.c RET

(대소 문자를 구분합니다.)

이 명령은 확장자가 '.c'인 '~ / soft' 아래 2 단계 깊이를 가진 모든 파일을 Dired 버퍼에 표시합니다 . 즉, '~ / soft / foo / bar.c' 와 같은 모든 파일 이 나열되지만 '~ / soft / qux.c' 또는 '~ / soft / foo / baz / qux.c' 와 같은 파일은 표시되지 않습니다 .

동일하지만 대소 문자를 구분하지 않습니다.

C-x d ~/soft/*/*.[cC] RET

보너스

elisp, 'ls-lisp'또는 'eshell-ls'에 구현 된 'ls'로 Dired를 실행하는 경우 다음 구문을 사용 하여 와일드 카드와 일치하는 모든 파일을 재귀 적으로 나열 할 수 있습니다 .

C-x d ~/soft/**/*.c RET

'**'에 유의하십시오. 이 경우 '~ / soft / qux.c' 조차 와일드 카드와 일치하는 '~ / soft' 아래 모든 파일 이 표시 됩니다.

그러나 insert-directory-program 와일드 카드를 사용 하는 경우 시스템 셸에서 확장합니다. 즉,이 재귀 '**'구문은 쉘에서 지원하는 경우에만 작동합니다. 예를 들어 zsh는 지원하지만 bash는 지원하지 않습니다. zsh가 아닌 다른 쉘에서 이전 명령은 다음과 동일하게 수행됩니다.

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