1 votos

Organizar los archivos de imágenes en carpetas de año/mes

Utilizo MS OneDrive para sincronizar las fotos tomadas en mi teléfono Android con mi Mac (se sincronizan en ~/OneDrive/Photos/Camera Roll). Me gustaría mover los archivos sincronizados en carpetas organizadas por Año y Mes (Año/Mes) en que se tomó la foto (o simplemente la fecha de creación del archivo).

Lo ideal es que este proceso se ejecute cada vez que se añadan nuevas fotos a la carpeta Camera Roll.

He echado un vistazo a las acciones de carpeta de Automator, pero parece que se limitan a hacer exactamente lo mismo con todo lo que se añade a la carpeta (por ejemplo, mover todos los elementos nuevos a una carpeta específica).

He encontrado un PowerShell script que hace exactamente esto en Windows pero no he encontrado ningún scripts correspondiente o aplicaciones gratuitas que hagan esto en MacOS.

¿Alguna sugerencia?

1voto

Ant Puntos 36

Podrías usar las acciones de la carpeta para ejecutar un bash script como este:

#!/bin/bash

DIR="/Users/USERNAME/OneDrive/Photos/Camera Roll"
target=$DIR
cd "$DIR" || exit

for file in *; do
    # Top year folder name
    year=$(stat -c "%y" "$file" | awk '{print substr($0,0,4)}')
    # Secondary folder name
    subfolderName=$(stat -c "%y" "$file" | awk '{print substr($0,6,2)}')

    if [ ! -d "$target/$year" ]; then
        mkdir "$target/$year"
        echo "starting new year: $year"
    fi
    if [ ! -d "$target/$year/$subfolderName" ]; then
        mkdir "$target/$year/$subfolderName"
        echo "starting new day & month folder: $subfolderName"
    fi
    echo "moving file $file"
    mv "$file" "$target/$year/$subfolderName"

done

También puede modificar los nombres de los directorios para incluir el día o el año y el mes cambiando la subcadena seleccionada en el comando substr.

1voto

Phil Puntos 2153

He encontrado Organice - una herramienta de línea de comandos gratuita y de código abierto diseñada para hacer exactamente este tipo de cosas.

La siguiente configuración funciona:

rules:
  # Move photos into Year/Month folders in My Photos
  - folders: ~/OneDrive/Pictures/Camera Roll
    filters:
    - extension: jpg
    - created
    actions:
     - move: ~/Pictures/My Photos/{created.year}/{created.month:02}/

Luego creé una acción de carpeta de Automator que ejecutará un Shell script cada vez que se agregue un archivo al Camera Roll de OneDrive:

/usr/local/bin/organize run --config-file=~/OneDrivePhotoSync.yaml

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X