Depois de ler o título, você pode pensar, bem, muito simples, eu uso o comando cp ou mv e uso o caractere curinga * para mover tudo de uma vez. Mas isso moveria cada um dos arquivos do diretório onde você está trabalhando. Mas não queremos exatamente isso, o que queremos mostrar neste mini-tutorial é algo um pouco mais refinado, ou seja, mover apenas determinados formatos de dentro desse diretório para outro local.
Lembre-se de que, quando digo mover, também pode ser renomeado. Dito isso, vamos começar a demonstrar como isso pode ser feito em um jeito super fácil e rápido, para que, quando você precisar limpar determinados formatos de arquivo, não precise movê-los um por um, mas possa automatizar tudo a partir de uma única linha de comando. Bem, para mover diferentes formatos de arquivos de um diretório para um diretório diferente, o formato do comando pode ser um dos seguintes:
mv /ruta/origen/*.{ext1, ext2, extn} /ruta/destino
mv *.ext1 *.ext2 *.extn /ruta/destino
Ambos os casos servem, no primeiro o que fazemos é especificar a rota de origem e então as extensões que vamos mover. Apenas esses serão movidos e não outros, afetando qualquer arquivo, qualquer que seja seu nome. No segundo caso, presume-se que já estamos trabalhando a partir do diretório onde estão os arquivos que vamos mover ...
Por exemplo, imagine que queremos mover todos os vídeos de um diretório para outro. Em vez disso, nesse diretório existem documentos .txt, .odt e também música em .mp3. Se estivéssemos interessados apenas em mover o .flv, .mp4, .avi e .mkv, o que faríamos seria o seguinte:
mv /home/Documentos/*.{flv, mp4, avi, mkv} /home/Multimedia
É tão simples, quando Vamos listar o conteúdo do referido diretório de origem com um lsVeremos que todos os arquivos movidos sumiram, mas aqueles que não queríamos afetar serão. Um exemplo muito simples, mas certamente os iniciantes apreciam!
excelente contribuição e útil