Мне потребовалось некоторое время, чтобы задать вопрос. В основном вы спрашиваете, можно ли что-то вроде:
echo "${test.png%.png}"
использовать слово test
.
Ответ - нет. Операторы манипуляции строк , начиная с ${
, являются подмножеством операторов замены параметров . Они работают только с переменными, а не с строковыми литералами, то есть вам нужно сохранить строку в переменной раньше. Например:
img="test.png"
echo "${img%.png}"
Просто для путешественников из Google я использовал rename
для этой конкретной задачи. (Поскольку ОП уже упоминал в своем вопросе). Команда может выглядеть так:
find -name '*png' -execdir rename 's/\.png/_copy.png/' {} +