Я новичок в 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
Что сработало, но если бы кто-нибудь мог объяснить мне, почему средняя команда не работает, мне было бы интересно узнать. Или, если есть более элегантный однострочник, который бы делал то, что я хотел, мне было бы интересно увидеть и это.