Разбор завалов

Сгруппировать сваленные в кучу файлы по их расширению можно, например, такой командой:

find . -type f \
| perl -MFile::Copy -MFile::Path -nle \
'/\.([^\.\/]+)$/ and $ext = $1; print $ext; File::Path::make_path "../$ext"; move $_, "../$ext"'