Hum, eu suponho que você queira manter os arquivos em alguma nova pasta, certo?
Cuidado: verifique se você está no diretório correto. Certifique-se de fazer um teste primeiro. Certifique-se de que não haja arquivos com nomes idênticos em diretórios diferentes.
mv */* /path/to/new/folder
rmdir *
As coisas ficam um pouco mais complicadas se você tiver mais de um nível, por exemplo você tem sub-sub-subpastas e deseja mover os arquivos regulares e remover os diretórios. Nesse caso,
find . -type f -exec mv {} /path/to/new/folder \;
find . -type d -exec rm -rf {} \;
Vamos tornar o desafio ainda mais interessante. Digamos que queremos mover os arquivos, mas queremos mudar os nomes de forma que eles reflitam a estrutura do diretório. Por exemplo, se no diretório atual houver um arquivo foo.jpg
in ./blah/pah/oh/
, queremos renomeá-lo como blah_pah_oh_foo.jpg
. Por motivos de segurança, podemos copiá-lo em vez de se mover.
for i in 'find . -type f -print' ; do \
newname='echo $i | sed 's/^\.\///;s/\//_/g'' ; \
echo moving $i to $newname ; \
mv $i $newname ; \
done