¿Listar todas las etiquetas en Terminal en Mavericks?

5

¿Es factible enumerar todas las etiquetas ya definidas en OS X en Terminal?

Sé que hay algunas aplicaciones de terceros que listan todas las etiquetas, pero solo quiero usar Terminal para encontrar todas las etiquetas, ya que uso esta herramienta para trabajar con etiquetas en la Terminal (pero desafortunadamente, la herramienta no proporciona listas de etiquetas para un sistema completo, solo lista para uno o varios archivos seleccionados arbitrariamente).

Gracias.

    
pregunta Blaszard 01.12.2013 - 11:44

5 respuestas

4

El nombre de las etiquetas está en ~/Library/Preferences/com.apple.finder.list .

Puedes leerlo con

defaults read com.apple.finder.plist ViewSettingsDictionary

Necesitará un análisis para ser un poco más claro:

defaults read com.apple.finder.plist ViewSettingsDictionary | 
    awk 'NR%12==2'| grep -o '".*"' |  sed 's/^.\(.*\).\{18\}$//'

Otra posibilidad es analizar el plist como xml. Para hacerlo, primero deberá convertir el plist de binary a xml usando.

plutil -convert xml1 ~/Library/Preferences/com.apple.finder.plist

    
respondido por el Matthieu Riegler 01.12.2013 - 14:19
5

También puede usar la etiqueta :

tag -tgf \*|grep '^    '|cut -c5-|sort -u

tag -f \* encuentra todos los archivos con etiquetas, -t incluye nombres de etiquetas en la salida, y -g imprime cada etiqueta en una línea separada.

    
respondido por el user495470 13.12.2013 - 07:56
3

También puedes usar mdfind en combinación con mdls para obtener el mismo resultado:

/usr/bin/mdfind -0 "(kMDItemUserTags == '*')" |xargs -0 mdls -name kMDItemUserTags |grep '^    ' |cut -c5- |cut -d , -f 1 |sort -u

Sería interesante comparar, cuál es más rápido.

    
respondido por el Marko Kaestner 16.12.2013 - 20:58
2

Esa lista no es exhaustiva. Solo se añaden etiquetas a través de Finder. Hay un archivo adicional ~/Library/SyncedPreferences/com.apple.finder.plist , que también enumera las etiquetas que se han manipulado en el Finder.

Si etiquetó un archivo en Terminal o usando otra herramienta y nunca manipuló las etiquetas en el Finder, entonces las etiquetas no estarán en ninguna de las listas.

    
respondido por el Ted Wise 12.12.2013 - 16:04
2

Color seguido de ruta:

/usr/bin/mdfind -0 "(kMDItemUserTags == '*')" | xargs -I % sh -c 'echo $(mdls -name kMDItemUserTags % | grep "^ " |cut -c5-) %'

    
respondido por el jjardine 05.02.2014 - 15:17

Lea otras preguntas en las etiquetas