Xattr kullanabilirsiniz. Bu, etiketleri dosya1'den dosya2'ye kopyalar:
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
Etiketler, özellik listesinde tek bir dizgi dizisi olarak saklanır:
$ 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>
Renkler için etiketlerin değerleri Red\n6
(burada \n
satır besleme) vardır.
Com.apple.FinderInfo içindeki kColor bayrağı ayarlanmamışsa, Finder dosyaların yanındaki renklerin dairelerini göstermez. KColor bayrağı turuncuya ayarlanmışsa ve dosyada kırmızı etiket varsa, Finder hem kırmızı hem de turuncu daireleri gösterir. AppleCo ile kColor bayrağını ayarlayabilirsiniz:
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")'
bunun için eski stil plist sözdizimidir:
<?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
kColor bayrağı için kullanılan bitlerin değerini yazdırır. Kırmızı C, turuncu E, sarı A, yeşil 4, mavi 8, macenta 6 ve gri 2'dir. (Değerlere 1 ekleyecek olan bayrak OS X'te kullanılmaz.)