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
.