Anda bisa menggunakan xattr. Ini menyalin tag dari file1 ke file2:
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
Tag disimpan dalam daftar properti sebagai satu larik string:
$ 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>
Tag untuk warna memiliki nilai seperti Red\n6
(di mana \n
umpan baris).
Jika bendera kColor di com.apple.FinderInfo tidak disetel, Finder tidak menampilkan lingkaran untuk warna di sebelah file. Jika bendera kColor diatur ke oranye dan file memiliki tag merah, Finder menunjukkan lingkaran merah dan oranye. Anda dapat mengatur bendera kColor dengan 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")'
adalah sintaks plist gaya lama untuk ini:
<?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
mencetak nilai bit yang digunakan untuk bendera kColor. Merah adalah C, oranye adalah E, kuning adalah A, hijau adalah 4, biru adalah 8, magenta adalah 6, dan abu-abu adalah 2. (Bendera yang akan menambahkan 1 ke nilai-nilai tidak digunakan dalam OS X.)