1

Я искал решение о том, как пакетно переименовать фотографии в Mac OS X. Я нашел много решений, но большинство из них не работают, если в файле есть пробел или я хочу поставить пробел в имени файла.

Например, я нашел этот скрипт:

for i in *.jpg; do newname=$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- $i); mv -- $i $newname.jpg; done

Сценарий работает до тех пор, пока я не ставлю пробел в окончательном имени файла (мне действительно нужен пробел в имени файла, потому что я переименовывал свои файлы с пробелами в течение последних 3 лет в Windows). И он также ломается, если в самом файле есть пробел. Поэтому, если у меня есть фотография «Hello World.jpg», она не будет обработана.

У кого-нибудь есть решение для этого, пожалуйста? Для этого предпочтительно не требуется никакого дополнительного программного обеспечения (я просто хочу иметь возможность копировать / вставлять этот скрипт каждый раз, когда я переключаю машины).

Спасибо!

2 ответа2

3

Вы должны использовать кавычки в ваших заменах:

for i in *.jpg; do newname="$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- "$i")"; mv -- "$i" "$newname.jpg"; done

Это должны быть двойные кавычки, чтобы разрешить переменную и расширение $() .

0

Обычно этого было бы достаточно, чтобы заменить $i на "$i" .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .