От man zshoptions
HIST_VERIFY
Whenever the user enters a line with history expansion, don't execute the line
directly; instead, perform history expansion and reload the line into the editing buffer.
Отключить эту выполненную опцию setopt no_hist_verify
. Можно также взглянуть на файл конфигурации и удалить hist_verify опцию или просто явно отключить его.
Не совсем уверенный я понимаю то, что Вы пытаетесь сделать, но я полагаю, что простой сценарий удара следующим образом работал бы
for f in * ; do mv "$f" "$(echo "$f" | cut -d- -f2)"; done
Если Вам не нравится, когда эхо сокращает ерунду, я могу искать строковые правила в ударе для Вас.
for f in *; do
regular="${f#*-}"
echo "$f => $regular"
done
Это расширение параметра (${f#*-}
) удаляет, от запуска значения переменной, самая короткая строка, которая заканчивается дефисом (см. руководство). Так:
$ f=32456113-summary-report.doc
$ echo "$f => ${f#*-}"
32456113-summary-report.doc => summary-report.doc
Можно использовать perl-rename
.
perl-rename 's/[0-9]*-//' <files>
Завися Ваша ОС/дистрибутив, эту утилиту можно назвать rename
. Для сейфа используйте -n
флаг с perl-rename
сделать пробный прогон прежде на самом деле переименовать любые файлы.
ls
вывод. – 02.07.2013, 23:09cut -d- -f2-
вместо этого. – 02.07.2013, 23:35