.test так?
for file in *; do name=$(echo $file | cut -d '.' -f 1); mv $file $name.test; done
А как это себя поведёт, если у файла нет . в имени? ;)
И ещё вариант с .sh.bak
в репах есть софт про ренейм. чебы не начать с него, вместо лисапедов?
Если говорить об изящиствах, то name=${file%.*}. Оно будет корректно работать, если у тебя несколько точек в имени файла, т.к. оно берёт всю строчку перед последней точкой (non greedy).
Спасибо, я почитал про утилиты. Действительно удобнее, чем свой лесопед изобретать.
Обсуждают сегодня