모든 하위 폴더에서 와일드 카드 이름을 검색하려면 어떻게합니까?


답변:


40

사용할 수 있습니다 find. 예를 들어 파일 abcd이름에있는 모든 파일과 디렉토리를 찾으 려면 다음을 실행할 수 있습니다.

find . -name '*abcd*'

12

Zsh :

ls -ld -- **/*abcd*

Ksh93 :

set -o globstar     # put this line in your ~/.kshrc
ls -ld -- **/*abcd*

배쉬 ≥4 :

shopt -s globstar   # put this line in your ~/.bashrc
ls -ld -- **/*abcd*

해시 :

set -o extendedglob # put this line in your ~/.yashrc
ls -ld -- **/*abcd*

tcsh :

set globstar
ls -ld -- **/*abcd*

물고기:

ls -ld -- **abcd*

(;하지 좋아해요 것들의 일부를 디렉토리 트리를 내려 할 때 심볼릭 링크를 따를 것이다 그 껍질의 일부를 조심 zsh, yash또는 tcsh***/*abcd*그것을 할).

이식성 (오래된 시스템을 제외하고 OpenBSD는 오랜 시간이 걸렸지 만 결국 exec … +5.1 이후 지원 )

find . -name '*abcd*' -exec ls -ld {} +

POSIX는 아니지만 * BSD, Linux, Cygwin, BusyBox에서 작동합니다.

find . -name '*abcd*' -print0 | xargs -0 ls -ld

일부 BSD를 제외하고 일치하는 파일이 ls -ld없으면 인수없이 실행되므로 list가 실행됩니다 .. 일부 xargs구현에서는 -r옵션을 사용하여이를 해결할 수 있습니다 .


shopt -s globstar는 무엇을합니까?
capybaralet

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