У меня есть огромная библиотека в новом приложении «Фотографии» на моей машине Mac OS X Yosemite, я хочу знать самый простой способ экспортировать или сделать резервную копию всех этих фотографий и видео на внешний жесткий диск (отформатированный для Mac), учитывая это, я хочу для использования фотографий и видео на компьютере с Windows 7.
Примечание . File -> Export
Экспорт тысяч этих элементов займет вечность.
Если вы просто хотите, чтобы вся структура Masters была скопирована на новый диск, то
сначала найдите файл iPhoto или библиотеки фотографий. Расположение по умолчанию для обоих — ~/Pictures/
Щелкните правой кнопкой мыши файл библиотеки и выберите «Показать содержимое пакета» — это покажет «файл» как папку, которой он является на самом деле.
Папка Masters должна быть внутри. Вы можете скопировать это куда угодно.
Разбивается на годы, затем на месяцы. Не все содержащиеся папки будут фактически заполнены, если старые фотографии когда-либо были удалены, файловая структура останется.
Как указано в комментариях, если вам нужно, чтобы скопированная структура изначально читалась в Windows, вам следует отформатировать целевой диск как ExFAT.
Windows изначально не может читать диски Mac OS Extended, и для этого потребуется поддержка сторонних производителей.
Я знаю, что это старо и на него есть ответ, но я думаю, что сценарий, который я собрал после дня поиска в Google и попыток, стоит того, чтобы поделиться им.
Измените параметры, и этот сценарий либо переместит, либо скопирует ваши оригиналы в папку с именем «гггг-мм-дд название вашего альбома». Таким образом, вы отслеживаете оригинальные названия альбомов, и все фотографии также сортируются по дням.
Измените в соответствии с вашими потребностями. Я делаю это, чтобы иметь общую файловую базу исходных фотографий, синхронизированную с помощью Dropbox, и все пользователи, предоставляющие общий доступ, могут иметь свою собственную копию Photos.app, используя ее в качестве базы для фотографий, на которые есть ссылки.
Он пытается избежать перезаписи фотографий с тем же именем, сначала проверяя, существует ли уже неидентичный файл по тому же пути.
Кроме того, он устанавливает временную метку вновь созданных папок на дату событий, которые в них есть. Приятно сортировать события по дате в поисковике или где-то еще, хотя имена папок уже начинаются с даты (потому что, если вы скопируете их в другое место, временные метки все равно могут измениться).
Он совместим с одинарными кавычками в названиях альбомов. Это может быть совместимо с кавычками, но я НЕ проверял это.
#!/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
Несколько обновлений и дополнений:
Вы не найдете папку Masters в Catalina и Big Sur. Теперь он называется «Оригиналы».
Копировать папки Masters или Originals непросто. Эти папки содержат ряд вложенных папок и вложенных вложенных папок. И вы экспортируете исходные неотредактированные версии ваших фотографий, т.е. вы потеряете изменения.
Фотографии на диск больше не доступны. Это было здорово до Мохаве, но сломалось на Каталине из-за изменений в структуре базы данных фотографий. В Mac App Store появилось новое приложение Photos Takeout , которое работает на High Sierra, Mojave, Catalina и Big Sur.
Приложение Photos Takeout экспортирует элементы, хранящиеся локально (в библиотеке фотографий на Mac), во внешнем хранилище (ссылочные файлы) или в библиотеке фотографий iCloud.
Photos To Disk утверждает, что делает именно это:
Используя Photos To Disk, вы можете извлечь исходные фотографии и видео (включая фотографии в формате файлов RAW) из своей библиотеки фотографий всего за несколько простых шагов.
Вы можете настроить структуру папок, чтобы сгруппировать медиафайлы по годам, месяцам или дням. Для альбомов Photos To Disk использует структуру папок, определенную в Photos.
Медиафайлы можно переименовывать в соответствии с заголовками, которые вы в конечном итоге определили в Фото. Вы также можете добавлять префикс к именам файлов с датами мультимедиа или датами/часами мультимедиа.
Метаданные (название, описание, местоположение, ключевые слова, измененная дата и время) могут быть встроены в файлы изображений JPEG, PNG, TIFF и PSD или сохранены в дополнительных файлах XMP для других форматов файлов изображений (например, RAW).
Существует отличный сценарий Apple с https://origin-discussions-us.apple.com/thread/7641108?start=0&tstart=0 .
set dest to "/Users/me/Desktop/export/" as POSIX file as text -- the destination folder (use a valid path)
tell application "Photos"
with timeout of 180000 seconds
repeat with i in albums
set tFolder to dest & (get name of i)
my makeFolder(tFolder) -- create a folder named (the name of this album) in dest
export (get media items of i) to (tFolder as alias) without using originals
end repeat
end timeout
end tell
on makeFolder(tPath)
do shell script "mkdir -p " & quoted form of POSIX path of tPath
end makeFolder
Тецуджин
Уильям Т. Фроггард
некоматик