Я хотел бы переименовать свои изображения с .png на @2x.png. Есть ли простой способ сделать это с терминалом?
Пакетное переименование в OSX, добавьте @2x ко всем файлам, заканчивающимся на .png
Ответ 1
С помощью ответа Марка Сетчелла я смог решить это с помощью следующего однострочного:
for f in *.png; do NEW=${f%.png}@2x.png; mv ${f} "${NEW}"; done;
Изменить: flopr был прав, теперь нужно работать
Ответ 2
Позвольте мне добавить что-то к этому вкладу. Более общий, множественный формат (jpg, png,..) и имя "расширение бесплатно" (шаблон <name> @2x. <extension> ) одно выровненное решение будет следующим:
for file in *; do mv "$file" "${file%.*}@2x.${file##*.}"; done
Это работает как шарм. Надеюсь, что это поможет.
Ответ 3
Это должно сделать это:
#!/bin/bash
ls *.png | while read f
do
BASE=${f%.png} # Strip ".png" off end
NEW=${BASE}@2x.png # Add in @2
echo mv "$f" "${NEW}" # Rename
done
Сохраните его в файле Add2x, затем введите:
chmod +x Add2x
./Add2x
Когда вы увидели, что он собирается сделать, удалите слово "эхо", чтобы он действительно это сделал.
Ответ 4
A Рекурсивный один лайнер, который я использую:
find -L . -type f -name "*.png" -exec bash -c 'echo "$0" "${0%.*}@2x.png"' {} \;
-L для обработки символических ссылок... Тип f предназначен только для поиска файлов
Поменяйте 'echo' на 'mv', если вы довольны тем, что будет делать команда.
Ответ 5
На самом деле, есть более простой способ, используя инструмент Perl rename
...
rename 's/(.+)\.png/$1\@2x.png/i' *.png
Это говорит... "Замените один или несколько символов, за которыми следует .png
теми же символами и @2x.png
. Сделайте это без учета регистра (i
) для всех файлов PNG."
Инструмент rename
легко устанавливается с помощью homebrew
с помощью brew install rename
.