Parece que o operando de destino do zmv é citado se você introduzir referências anteriores, como $1
e $f
, portanto, não é possível incluir globbing nesse caso. A melhor opção que encontrei para resolver esse problema foi usar o -p
flag e dar zmv
uma função mv
definida.
Isso é o que eu criei:
mv2 () {
local dir
dir=(*_$3:h)
mv $1 $2 $dir[1]/$3:t
}
zmv -p mv2 'comment_(*).(pdf|md)' '$1/$f'
Na função mv2
, criamos uma matriz dos diretórios nos quais você deseja colocar os arquivos. Em seguida, no comando mv
real, marcamos os nomes dos arquivos nos componentes da matriz de diretórios. Globbing para os diretórios de destino deve ser separado, uma vez que esses arquivos ainda não existem. O globbing falharia de outra forma.