В MacOS X 10.6.6 с Bash (и, как мне кажется, с оболочкой Korn) это работает с именами файлов с пробелами в них:
echo > "x y"
for file in *
do
x=$(stat -f '%SB' -t '%Y%m%d.%H%M%S' "$file")
mv "$file" "$x"
done
В нем также используются обозначения, полученные из ISO 8601для даты и времени.Ясно, что если два файла имеют одинаковое время модификации, последний из этих файлов в алфавитном порядке будет единственным, который будет использоваться.Это также теряет любой суффикс.Если вы имеете дело с файлами «.jpg», вы, вероятно, захотите использовать:
echo > "x y,jpg"
for file in *.jpg
do
x=$(stat -f '%SB' -t '%Y%m%d.%H%M%S.jpg' "$file")
mv "$file" "$x"
done
Поскольку в имени вывода ($ x) нет пробелов, нет необходимости заключать в кавычки«$ x» в команде перемещения, но их присутствие соответствует.