for
los bucles no se ordenan, te dan los valores exactamente en el orden en que fueron presentados:
$ for x in b a c ; do echo $x ; done
b
a
c
Los globos, por otro lado, se ordenan alfabéticamente, independientemente de si los usa en un for
o en cualquier otro lugar:
$ touch b a c
$ echo *
a b c
Я редко использую mmv
, но здесь похоже, что вам нужно, чтобы средний *
точно соответствовал символу *
в имени файла. Поскольку *
в противном случае является шаблоном, попробуйте выйти из середины *
:
mmv '*\**' '#1#2'
Вам нужно экранировать *
, который вы хотите использовать буквально. Попробуйте это:
for file in *\**; do mv "$file" "${file/\*/}"; done
Или, если у вас установленоperl-rename
(как rename
в Debian и его производных, таких как Ubuntu):
rename 's/\*//' *