Case-insensitive Glob on zsh/bash
ZSH:
$ unsetopt CASE_GLOB
Or, if you don't want to enable case-insensitive globbing in general, you can activate it for only the varying part:
$ print -l (#i)(somelongstring)*
This will match any file that starts with "somelongstring" (in any combination of lower/upper case). The case-insensitive flag applies for everything between the parentheses and can be used multiple times. Read the manual zshexpn(1)
for more information.
UPDATE Almost forgot, you have to enable extendend globbing for this to work:
setopt extendedglob
Depending on how deep you want to have this listing, find
offers quite a lot
in this regard:
find . -iname 'SomeLongString*' -maxdepth 1
This will only give you the files in the current directory. Important here is
the -iname
parameter instead of -name
.
bash:
shopt -s nocaseglob
$ 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~