문제

이름이 'somelongstring'으로 시작하는 모든 파일을 나열해야합니다. 그러나 'Somelongstring'의 경우는 다를 수 있습니다. 어떻게?

ZSH를 사용하고 있지만 Bash 솔루션도 환영합니다.

도움이 되었습니까?

해결책

ZSH :

$ unsetopt CASE_GLOB

또는 일반적으로 사례에 민감한 글로브를 활성화하지 않으려면 다양한 부분 만 활성화 할 수 있습니다.

$ print -l (#i)(somelongstring)*

이것은 "SomelongString"으로 시작하는 모든 파일 (하위/대문자의 조합)과 일치합니다. 사례에 민감한 플래그는 괄호 사이의 모든 것에 적용되며 여러 번 사용할 수 있습니다. 매뉴얼을 읽으십시오 zshexpn(1) 자세한 내용은.

업데이트거의 잊어 버렸습니다.이 작업이 작동하도록 확장 글로브를 활성화해야합니다.

setopt extendedglob

다른 팁

세게 때리다:

shopt -s nocaseglob

이 목록을 얼마나 깊게하고 싶은지에 따라 find 이와 관련하여 많은 것을 제공합니다.

find . -iname 'SomeLongString*' -maxdepth 1

이것은 현재 디렉토리의 파일 만 제공합니다. 중요합니다 -iname 대신 매개 변수 -name.


$ function i () {
> shopt -s nocaseglob; $*; shopt -u nocaseglob
> }
$ ls *jtweet*
ls: cannot access *jtweet*: No such file or directory
$ i ls *jtweet*
JTweet.pm  JTweet.pm~  JTweet2.pm  JTweet2.pm~
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top