for fn in * do base=${fn%%.*} case $fn in *.*) ext=${fn#*.};; esac mv $fn ${base:0:10}${ext:+.${ext}} done for fn in * do base=${fn%%.*} ext=${fn#*.} mv $fn ${base:0:10}.${ext} done