¿Cómo puedo aplicar etiquetas en Mavericks recursivamente?

Ahora que Mavericks eliminó esa fea barra de color y la reemplazó con un bonito punto, me gustaría usar más etiquetas.

Básicamente, tengo archivos de trabajo en diferentes lugares que se ocupan de diferentes proyectos y me gustaría aplicar la etiqueta para todos los archivos incluidos en carpetas específicas. Los archivos pueden moverse a nuevas carpetas (fuera de la carpeta original) en el futuro, por lo que me gustaría aplicar una etiqueta recursivamente a una carpeta para que pueda encontrarlo más fácilmente si se mueve fuera de su carpeta.

Respuestas (4)

Puede usar xattr para escribir varios metadatos relacionados con las etiquetas "nuevas" en Mavericks. John Siracusa ya hizo el trabajo pesado aquí .

Básicamente, debe escribir dos atributos, com.apple.FinderInfo y com.apple.metadata:_kMDItemUserTags, en los archivos. La forma más fácil será etiquetar un archivo como desee y simplemente copiar los atributos de él. Abra la terminal y cambie al directorio que contiene la carpeta que desea etiquetar recursivamente. Luego ingrese:

touch sampleFile
open .

Eso abrirá Finder para que pueda etiquetar el archivo de muestra como desea que se etiqueten todos los demás archivos. Una vez que haya terminado de etiquetar, vuelva a la ventana de su terminal e ingrese:

find yourDirName -type f | xargs xattr -wx com.apple.FinderInfo \
"`xattr -px sampleFile`"

find yourDirName -type f | xargs xattr -wx com.apple.metadata:_kMDItemUserTags \
"`xattr -px com.apple.metadata:_kMDItemUserTags sampleFile`"

Eso desglosará recursivamente y etiquetará todos los archivos en yourDirName , así como los archivos en cualquier subdirectorio. Puede dejar el argumento -type f desactivado si desea etiquetar los subdirectorios además de los archivos.

Finalmente, puede cambiar el

find yourDirName -type f

comandos para

find yourDirName -iname "*.ext"

si solo desea etiquetar ciertos tipos de archivos/extensiones.

Me encanta. Leí la misma revisión de Ars y me preguntaba cómo podría adjuntar los metadatos necesarios a cada archivo.

Hay una herramienta de etiquetas CLI disponible a través de Macports/Homebrew: https://github.com/jdberry/tag

No parece tener una opción de recurrencia, sin embargo, me imagino que podría usar esto junto con el 'buscar' estándar de UNIX.

por ejemplo, (desde dentro del directorio en el que desea etiquetar archivos)

find . -exec tag --add tagname {} \;  -print 
La versión actual (etiqueta v0.8.1) admite el etiquetado recursivo mediantetag -e -d --add tagname path

Una forma sencilla de hacer esto es usar una búsqueda de Spotlight para generar una lista de todos los archivos que le interesan. Un ejemplo de cómo hacer esto:

  • En Finder, navegue hasta la parte superior de la estructura de carpetas que le interese.
  • Escriba -kind:folderen el campo de búsqueda de Spotlight

    Esto buscará todos los archivos que no sean una carpeta (el -signo niega los resultados).

  • Asegúrese de restringir la búsqueda a la jerarquía de carpetas que le interese haciendo clic en el nombre de la carpeta en los términos de búsqueda justo debajo del campo de búsqueda de Spotlight.

Ahora tendrá una lista en la ventana del Finder de todos los archivos dentro de esa jerarquía de carpetas. Ahora es trivial seleccionar todos los archivos y aplicar las etiquetas que desee de la forma habitual con Finder.

Utilice diferentes búsquedas de Spotlight para satisfacer sus necesidades.

Puede facilitar un poco este proceso haciendo que Spotlight siempre busque en la carpeta actualThis Mac y no :

Finder -> Preferences -> Advanced -> When performing a search: Search the current folder

Vaya a la carpeta superior y busque '.' dentro de esa carpeta.

Seleccione todos los archivos y etiquételos.

Es posible que deba eliminar la etiqueta y luego volver a aplicarla.