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