Я искал решение, как переименовывать несколько фотографий в 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", она не будет обработана.
Может, у кого-нибудь есть решение? Желательно, чтобы не требовалось никакого дополнительного программного обеспечения (я просто хочу иметь возможность копировать/вставлять этот скрипт каждый раз, когда я меняю машину).
Спасибо!
решение1
При замене необходимо использовать кавычки:
for i in *.jpg; do newname="$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- "$i")"; mv -- "$i" "$newname.jpg"; done
$()
Для разрешения переменных и расширений необходимо использовать двойные кавычки .
решение2
Обычно достаточно заменить $i
на "$i"
.