Переименование Glob в bash

Я новичок в bash, так что извините, если это базовый вопрос. Я пытался переименовать кучу файлов mp3, чтобы добавить 1- к их именам файлов, и mv * .mp3 1 - *. mp3 , к сожалению, не работали. Итак, я попытался написать сценарий, сначала с помощью echo для проверки команд:

for f in *.mp3 ; do echo mv \'$f\' \'1-$f\'; done

Кажется, что выводит те команды, которые мне нравятся, поэтому я удалил эхо, изменив команду на

for f in *.mp3 ; do mv \'$f\' \'1-$f\'; done

Что не удалось. Затем я попытался передать команды по конвейеру следующим образом

for f in *.mp3 ; do echo mv \'$f\' \'1-$f\'; done | /bin/sh

Что сработало, но если бы кто-нибудь мог объяснить мне, почему средняя команда не работает, мне было бы интересно узнать. Или, если есть более элегантный однострочник, который бы делал то, что я хотел, мне было бы интересно увидеть и это.

5
задан wim 5 December 2011 в 05:48
поделиться