Vous pouvez utiliser xattr. Cela copie les balises de fichier1 à fichier2:
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
Les balises sont stockées dans une liste de propriétés sous la forme d'un seul tableau de chaînes:
$ 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>
Les balises pour les couleurs ont des valeurs comme Red\n6
(où \n
est un saut de ligne).
Si l'indicateur kColor de com.apple.FinderInfo n'est pas défini, le Finder n'affiche pas les cercles des couleurs en regard des fichiers. Si l'indicateur kColor est défini sur orange et que le fichier comporte une balise rouge, le Finder affiche les cercles rouge et orange. Vous pouvez définir l'indicateur kColor avec 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")'
La syntaxe de plist à l’ancienne est la suivante:
<?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
affiche la valeur des bits utilisés pour l'indicateur kColor. Le rouge est C, orange est E, jaune est A, vert est 4, bleu est 8, magenta est 6 et gris est 2. (Le drapeau qui ajouterait 1 aux valeurs n'est pas utilisé dans OS X).