Хаос в папке с фотографиями и видео? Все вперемешку: отпуск 2018-го рядом с мемами 2024-го. Можно навести порядок одним скриптом.
Идея скрипта в том, чтобы он автоматически раскладывал файлы по структуре:
sorted/
├── 2018/
│ ├── 01/
│ └── 07/
├── 2020/
│ ├── 12/
└── 2024/
├── 02/
└── 05/
Основание - дата создания файла (или модификации, если EXIF не нужен).
🛠 Скрипт
#!/bin/bash
SRC_DIR=${1:-"./media"} # откуда берем файлы
DST_DIR=${2:-"./sorted"} # куда складываем
mkdir -p "$DST_DIR"
find "$SRC_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.mp4" -o -iname "*.mov" \) | while read -r file; do
# получаем дату модификации файла (год и месяц)
year=$(date -r "$file" +%Y)
month=$(date -r "$file" +%m)
# создаем директорию и переносим
target="$DST_DIR/$year/$month"
mkdir -p "$target"
echo "→ $file → $target/"
mv "$file" "$target/"
done
▪️ Запуск
chmod +x media_sorter.sh
./media_sorter.sh ./Camera ./SortedMedia
🌟 Дополнительно
Если нужен EXIF (реальная дата съёмки фото, а не модификации файла) → используем exiftool:
exiftool '-FileName<CreateDate' -d "%Y/%m/%Y-%m-%d_%H-%M-%S%%-c.%%e" ./media
⚠️ Для видео часто EXIF нет, но можно использовать ffprobe (часть ffmpeg) для даты.
Такой скрипт удобно запускать перед бэкапом в облако - сразу порядок в медиатеке.
BashTex 📱 #bash