如何在ZSH中将Glob转换为文件名数组(而不是路径)

时间:2014-04-05 16:32:09

标签: zsh

我想将zsh中的glob扩展为匹配文件的文件名而不是路径。我知道我可以这样做:

paths=(/some/path/blah*blah*blah)
typeset -a filenames
for i ({1..$#paths}); do
  filenames[$i]=`basename $paths[$i]`
done

但我认为必须有更好的方法。

1 个答案:

答案 0 :(得分:7)

有一个使用参数修饰符的两步过程:

paths=(/some/path/blah*blah*blah)
filenames=($paths[@]:t)

但您也可以将:t修饰符直接应用于glob本身:

filenames=( /some/path/blah*blah*blah(:t) )