mv -t newfolder *.(png|jpg)
É a sintaxe zsh , mas você precisa ativá-la com:
setopt extended_glob
A rigor, você deve escrever:
mv -t newfolder -- *.(png|jpg)
Caso contrário, se alguns nomes de arquivo começarem com um caractere - , ele não funcionará corretamente.
mv -t newfolder -- *.@(png|jpg)
é a sintaxe ksh . Ele pode ser reconhecido por zsh se você ativar a opção kshglob ( setopt kshglob ) e por bash se você ativar a opção extglob ( shopt -s extglob ).
No entanto, observe que ksh e bash sofrem de um problema nessa instância: se não houver nenhum arquivo png nem jpg , *.@(png|jpg) será passado intocado para mv e, se houver existe um arquivo por esse nome (reconhecidamente incomum), ele será movido para newfolder .
Em bash , você pode evitar esse problema ativando a opção failglob . Em ksh (versões recentes do ksh93 apenas), o melhor que você pode fazer é escrever ~(N)*.@(png|jpg) (que seria equivalente a nullglob no bash ou o (N) globbing qualifier em zsh), o que causaria o padrão para expandir para nada se não houver nenhum arquivo correspondente e, em seguida, você obterá um erro de mv .