Usted puede utilizar xattr. Esta copia las etiquetas de archivo1 a archivo2:
xattr -wx com.apple.metadata:_kMDItemUserTags "$(xattr -px com.apple.metadata:_kMDItemUserTags file1)" file2
xattr -wx com.apple.FinderInfo "$(xattr -px com.apple.FinderInfo file1)" file2
Las etiquetas se almacenan en una lista de propiedades como una sola matriz de cadenas:
$ xattr -p com.apple.metadata:_kMDItemUserTags file3|xxd -r -p|plutil -convert xml1 - -o -
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>Red
6</string>
<string>aa</string>
<string>Orange
7</string>
<string>Yellow
5</string>
<string>Green
2</string>
<string>Blue
4</string>
<string>Purple
3</string>
<string>Gray
1</string>
</array>
</plist>
Las etiquetas de colores tienen valores como Red\n6
(donde \n
es un salto de línea).
Si el kColor bandera en com.apple.FinderInfo no está definida, Finder no se muestran los círculos de colores junto a los archivos. Si el kColor bandera naranja y el archivo tiene la etiqueta roja, Buscador de muestra y rojo de los círculos de color naranja. Puede establecer el kColor bandera con AppleScript:
do shell script "xattr -w com.apple.metadata:_kMDItemUserTags '(\"Red\\n6\",\"new tag\")' ~/desktop/file4"
tell application "Finder" to set label index of file "file4" of desktop to item 1 of {2, 1, 3, 6, 4, 5, 7}
'("Red\n6","new tag")'
es de estilo antiguo plist sintaxis:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>Red
6</string>
<string>new tag</string>
</array>
</plist>
xattr -p com.apple.FinderInfo file|head -n1|cut -c28-29
imprime el valor de los bits utilizados para la kColor bandera. El rojo es C, la naranja es E, el amarillo, el verde es de 4, el azul es 8, el magenta es de 6, y el gris es 2. (El indicador de que se podría añadir de 1 a los valores no se utiliza en OS X.)