Sé que esto es viejo y contestado, pero creo que el script que armé después de un día de googlear y probar vale la pena compartirlo.
Modifica tus opciones, y este script mueve o copia tus originales a una carpeta llamada 'yyyy-mm-dd Your Album Name'. Así mantienes los títulos de tus álbumes originales, y además todas las fotos están ordenadas por día.
Modifícalo para adaptarlo a tus necesidades.. Hago esto para poder tener una base de archivos compartida de fotos originales sincronizadas por dropbox, y todos los usuarios que comparten pueden tener su propia copia de Photos.app usar eso como base para las fotos referenciadas.
Intenta evitar sobrescribir fotos con el mismo nombre, verificando primero si ya existe un archivo no idéntico en la misma ruta.
Además, establece la marca de tiempo de las carpetas recién creadas en la fecha de los eventos que tienen. Bueno para ordenar los eventos por fecha en el finder o lo que sea, aunque los nombres de las carpetas ya comienzan con la fecha (porque si los copia en otro lugar, las marcas de tiempo pueden cambiar de todos modos).
Es compatible con comillas simples en los nombres de álbumes. Puede ser compatible con comillas, pero NO lo he probado.
#!/bin/bash
#### A few options ####
#dryrun=1
dryrun=0
# Choose to duplicate (slow, space eating) or move (space saving, fast if on same drive).
#action=cp
action=mv
# set your paths
# origin:
libr="Photos Library.photoslibrary"
# destination:
destpath="MyProperlyOrganizedFotos"
# no idea why Apple chooses a funny date. Adjust to your time-zone needs
dateoffset=978307200
#### End of options ####
sqllib="${libr}"/Database/apdb/Library.apdb
s="sqlite3 ${sqllib}"
#${s} 'select fileName,imageDate,imagePath,projectUuid from RKMaster'
${s} 'select fileName,imageDate,imagePath,projectUuid from RKMaster' | sed 's,",thisisaquotationmark,g' | while read -r line; do
echo $line
name=`echo "$line" | awk 'BEGIN {FS="|"} {print $1}'`
date=`echo "$line" | awk 'BEGIN {FS="|"} {print $2}'`
path=`echo "$line" | awk 'BEGIN {FS="|"} {print $3}'`
albumid=`echo "$line" | awk 'BEGIN {FS="|"} {print $4}'`
albumname=`${s} "select name from RKFolder where uuid == '${albumid}'" | sed -e 's,/,:,g' -e 's,!,,g' -e 's,",thisisaquotationmark,g'`
realdate=`date -r $(( ${dateoffset} + ${date} )) '+%Y-%m-%d' `
touchdate=`date -r $(( ${dateoffset} + ${date} )) '+%Y%m%d1200' `
# does this file still exist? or did we move it already?
src=`echo ${libr}/Masters/${path} | sed 's/thisisaquotationmark/\\"/g'`
if [ ! -f "${src}" ]; then
continue
fi
# trim:
newpath=`echo $realdate $albumname | sed 's/thisisaquotationmark/\\\\"/g'`
if [ ! $dryrun -eq 1 ]; then
expandednewpath=`echo ${newpath}`
mkdir -p "${destpath}/${newpath}"
touch -t ${touchdate} "${destpath}/${newpath}"
fi
target="${destpath}/${newpath}/${name}"
index=0
# add an integer index to a file if the name exists in this path already
while [ -f "${target}" ] && ! cmp --silent "${target}" "${src}" ; do
echo 'Avoiding overwrite: ' $index
index=$(( $index + 1 ))
target="${destpath}/${newpath}/${name} $index"
done
if [ $dryrun -eq 1 ]; then
echo "Would do ${action} '${src}' '${target}' "
else
echo "${action} '${src}' '${target}' "
${action} "${src}" "${target}"
fi
done
2 votos
Depende de si quieres las ediciones actuales de cada imagen o el archivo maestro. Las ediciones actuales requerirán que las exportes. Los archivos maestros pueden extraerse de la Biblioteca al por mayor.
2 votos
Querrás tener tu disco formateado como ExFAT para que el PC con Windows pueda leer tu unidad.
1 votos
O tendrás que utilizar software de terceros en el PC para que pueda leer un disco de Mac.