Я не знаю, посчитаете ли вы это «менее уродливым», но вы можете использовать GNU find
так:
find -maxdepth 1 -regextype posix-extended -regex './[[:alnum:]]{5}'
хотя это будет положил ./
перед каждой записью, хотя вы можете sed
that away
В зависимости от того, что вы делаете дальше, find
может также помочь избежать ] Проблемы с анализом ls
Сохраняя его с помощью extglob ( shopt -s extglob
), вы могли бы немного его переписать, хотя, опять же, я не знаю, считаете ли вы его более чистым
ls [[:alnum:]][[:alnum:]][[:alnum:]][[:alnum:]][[:alnum:]]