Кажется, что у grsecurity разработчиков были проблемы в прошлом убедительном Linus для принятия изменений в ядро. Проблемы, кажется:
Ответ, исправленный для получения 25.11.2013 вместо 20131125
Если Ваш сценарий работает с a bash
совместимая оболочка, самое легкое решение состоит в том, чтобы заменить
d=$(date -r "$x" +%Y-%m-%d)
с
d="${x:4:4}-${x:8:2}-${x:10:2}"
портативное решение с expr:
d=$(expr substr "$x" 5 4)-$(expr substr "$x" 9 2)-$(expr substr "$x" 11 2)
При необходимости только в 20 131 125 вместо 25.11.2013 как имя каталога Вы можете также
Решение с sed:
d=$(echo "$x" | sed 's/.*_\([0-9]*\)_.*/\1/')
sed
команды заменяют имя файла числом между символами нижнего подчеркивания (=the дата).
Решение с awk:
d=$(echo "$x" | awk -F _ '{print $2}')
Решение с сокращением:
d=$(echo "$x" | cut -d_ -f 2')
Можно использовать:
export LC_ALL=C
for x in *.JPG; do
d=$(date -d $( cut -d"_" -f2 <<< ${x} ) +%Y-%m-%d )
mkdir -p "$d"
mv -- "$x" "$d/"
done