Найти в Дзене
2 подписчика

Случайно был убит раздел с архивом фотографий, после восстановления получилась куча подкаталогов с файлами. На части файлов правильно восстановились даты.

Решил на первом этапе сортировки раскидать файлы по годам. Самому было лень думать попросил ChartGPT накидать скрипт на bash. Получил сразу рабочую версию. Исходный и конечный каталоги указываются прямо с скрипте.

#!/bin/bash

source_dir="/Volumes/ExDrive/PHOTO_OLD"
target_dir="/Volumes/ExDrive/PHOTO_NEW"

# Создаем целевой каталог, если он не существует
mkdir -p "$target_dir"

# Перебираем все файлы в исходном каталоге
find "$source_dir" -type f | while read -r file_path; do
  # Получаем год создания файла
  creation_year=$(stat -f "%Sm" -t "%Y" "$file_path")

  # Создаем целевой каталог для этого года
  year_dir="$target_dir/$creation_year"
  mkdir -p "$year_dir"

  # Получаем имя файла без расширения
  file_name=$(basename "$file_path")
  file_name_no_ext="${file_name%.*}"
  file_ext="${file_name##*.}"

  # Генерируем новое уникальное имя файла
  new_file_name="$file_name_no_ext-$(date +%s).$file_ext"

  # Полный путь нового файла
  new_file_path="$year_dir/$new_file_name"
  echo $file_path "->" $new_file_path

  # Перемещаем файл в соответствующий каталог с новым именем
  mv "$file_path" "$new_file_path"
done

echo "Файлы перемещены успешно."
1 минута