Copie el contenido de una carpeta inteligente a una nueva carpeta en Mountain Lion

Admito que mi colección de música es un desastre real. Este es el resultado de fusionar muchas fuentes de música (unidad externa, sincronización de iPod antiguo, compras de iTunes, etc.) en mi cuenta de iTunes. iTunes Match ha hecho un buen trabajo al limpiarlo visualmente mientras lo miro en iTunes.

Lo que quiero hacer es crear una copia de seguridad de toda mi música sin importar dónde se encuentre (HD externo, etc.) en una ubicación y, con suerte, eliminar los duplicados en el proceso.

Más específicamente, configuré una carpeta inteligente para encontrar todo tipo: música con una tasa de bits de más de 44 kbps. Esto da como resultado más de 20.000 archivos de música en alrededor de 485 GB. Ahora quiero copiar todo este contenido a mi disco externo para asegurarme de tener una copia de seguridad de todos estos archivos de audio.

Probé un simple seleccionar todo y arrastrar para copiar, pero eso no pareció funcionar. Después de unos días de que Finder "no respondiera", eliminé el proceso. Se crearon algunos archivos de cero bytes en la unidad externa, pero no hubo señales de progreso después de los primeros minutos.

Me pregunto si hay un comando de Terminal que pueda hacer referencia al contenido de una carpeta inteligente y copiar o alguna otra forma creativa de hacerlo.

Realmente no quiero meterme con iTunes, solo quiero copiar todos los archivos de música al disco duro externo. ¿Guión bash tal vez?

Copiar más de 485 GB definitivamente llevaría mucho tiempo, probablemente 3 días a velocidades de escritura normales de iMac. Sería bueno dividir los archivos en grupos de unos 10 GB y trabajar con ellos.

Respuestas (1)

Puede usar mdfindun script de shell para simular la configuración de su carpeta inteligente (mdfind es cómo usa Spotlight desde la línea de comando). Úselo kMDItemKindpara especificar el tipo y kMDItemAudioBitRatela tasa de bits.

Luego puede usar esa lista de archivos y copiarlos en su disco externo.

Algo como este script a continuación. ( scpcopia archivos a un servidor; utilícelo cppara copiar a una unidad. O, si desea hacerlo más elegante, rsyncgeneralmente es mejor para copias de seguridad incrementales).

#!/bin/bash

for FILE in $(mdfind 'kMDItemAudioBitRate >= "44000"')
do
    scp $FILE myname@myserver:~/music-backup
done
kMDItemKind no funcionó, pero después de investigar un poco, descubrí que kMDItemContentTypeTree = public.audio funciona. Esto enumera todos los tipos de archivos de audio, por lo que puede ser demasiado amplio para algunos.
@knipknup Sí, hurgué con kMDItemKind y la única forma en que pude hacer que funcionara correctamente fue crear una carpeta inteligente en el Finder, elegir "Tipo = Música" y copiar el número que guarda en el archivo.