我想将zsh中的glob扩展为匹配文件的文件名而不是路径.我知道我可以这样做:
paths=(/some/path/blah*blah*blah)
typeset -a filenames
for i ({1..$#paths}); do
filenames[$i]=`basename $paths[$i]`
done
Run Code Online (Sandbox Code Playgroud)
但我认为必须有更好的方法.
有一个使用参数修饰符的两步过程:
paths=(/some/path/blah*blah*blah)
filenames=($paths[@]:t)
Run Code Online (Sandbox Code Playgroud)
但你也可以:t直接将修饰符应用于glob本身:
filenames=( /some/path/blah*blah*blah(:t) )
Run Code Online (Sandbox Code Playgroud)