LINUX.ORG.RU

История изменений

Исправление superuser, (текущая версия) :

На, доделал. Обзываешь директорию с твоими фотками например FOTO.
Стартуешь скрипт c параметром = путь к этой директории.
!!! Осторожно: cкрипт переместит все файлы из указанной директории ${NAME} и её поддиректорий в директории ${NAME}_${year}. !!!

#!/bin/bash

USAGE() {
echo "Use: $(basename $0) path-to-directory";
return 0;
}

DO() {
find "${1}" -type f -printf '%TY %p\n' |
while read -r year fname; do
        printf '[%s] [%s]\n' "$year" "$fname"
	td="${1}_${year}/"
	mkdir -p "${td}"
	#cp --backup=numbered --preserve "${fname}" "${td}"
	mv --backup=numbered "${fname}" "${td}"
done
}

if [ $# -eq 0 ]; then
    USAGE;
    exit 0
fi

echo "Source dir.: $1"
echo "Press 'y' for continue..."
read -s -n 1 key

case $key in
[y,Y])
DO "${1}"
exit 0
;;
*) 
exit 1
esac
Если в поддиректориях были файлы с одинаковыми именами, то они будут переименованы с добавлением суффикса как тут:
$ ls -a1
.
..
'Я и Маша.jpg'
'Я и Маша.jpg.~1~'
'Я и Маша.jpg.~2~'
'Я на лыжах.jpg'
'Я на лыжах.jpg.~1~'
'Я на лыжах.jpg.~2~'

Исходная версия superuser, :

На, доделал. Обзываешь директорию с твоими фотками например FOTO.
Стартуешь скрипт c параметром = путь к этой директории.
!!! Осторожно: cкрипт переместит все файлы из указанной директории ${NAME} в директории ${NAME}_${year}. !!!

#!/bin/bash

USAGE() {
echo "Use: $(basename $0) path-to-directory";
return 0;
}

DO() {
find "${1}" -type f -printf '%TY %p\n' |
while read -r year fname; do
        printf '[%s] [%s]\n' "$year" "$fname"
	td="${1}_${year}/"
	mkdir -p "${td}"
	#cp --backup=numbered --preserve "${fname}" "${td}"
	mv --backup=numbered "${fname}" "${td}"
done
}

if [ $# -eq 0 ]; then
    USAGE;
    exit 0
fi

echo "Source dir.: $1"
echo "Press 'y' for continue..."
read -s -n 1 key

case $key in
[y,Y])
DO "${1}"
exit 0
;;
*) 
exit 1
esac
Если в поддиректориях были файлы с одинаковыми именами, то они будут переименованы с добавлением суффикса как тут:
$ ls -a1
.
..
'Я и Маша.jpg'
'Я и Маша.jpg.~1~'
'Я и Маша.jpg.~2~'
'Я на лыжах.jpg'
'Я на лыжах.jpg.~1~'
'Я на лыжах.jpg.~2~'