Levando em conta que 1) Q disse "grande coleção ... de arquivos" - a lista de arquivos pode não caber em um buffer de linha de comando (2.084.684 bytes no sistema MY ); e 2) Nomes de arquivo podem conter caracteres engraçados (" My Stuff.jpg
"); mv
não é o melhor caminho. Usando find
, xargs
e o conhecimento seguro de que os nomes de arquivos NÃO devem conter bytes NUL (ou barras):
find /home/tony/Desktop/unsorted_files/ -maxdepth 1 -type f -iname '*.jpg' -print0 | \
xargs -0 --no-run-if-empty echo mv --target-directory=/home/tony/Desktop/jpgfolder
Quando os comandos echo
d parecerem corretos, remova o echo
e deixe mv
fazer o trabalho.
Se você já tiver feito mv /home/tony/Desktop/unsorted_files/*.jpg /home/tony/Desktop/jpgfolder
ANTES você criou o /home/tony/Desktop/jpgfolder
, nada foi perdido, mas você deve, como outras respostas disseram, mkdir -p /home/tony/Desktop/jpgfolder
primeiro.