Основываясь на выбранном ответе Марка Манна, я смог получить следующий пример, который прекрасно работает:
$ eval echo\ category_.properties\{,.bak\}\; category_17.properties category_17.properties.bak category_32.properties category_32.properties.bak category_33.properties category_33.properties.bak
Это показывает, что когда вы используете множественные вхождения фигурных скобок в пределах строки, оригинальный пример Марка напечатал бы каждый вариант по отдельности. Вместо этого я хотел использовать его ответ для перемещения / переименования нескольких файлов. Для того, чтобы гарантировать, что выходной сигнал соответствует формату, который mv
обычно ожидает ( mv oldfilename newfilename
), я избегал второго вхождения расширения распорки, так что она не будет оценена, пока после того, как начальное eval
командование выполняется.
Поскольку вышеприведенный вывод выглядел, как и ожидалось, я смог выполнить следующую команду:
$ eval mv\ category_.properties\{,.bak\}\; $ ls category_17.properties.bak category_32.properties.bak category_33.properties.bak
Большое спасибо Марку за его оригинальный ответ. Пожалуйста, проголосуйте за его ответ, если вам нравится, что его ответ позволил мне сделать :-)