คุณสามารถใช้ xattr สิ่งนี้คัดลอกแท็กจาก file1 ไปยัง 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
แท็กถูกเก็บไว้ในรายการคุณสมบัติเป็นอาร์เรย์ของสตริงเดียว:
$ 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>
แท็กสำหรับสีมีค่าเช่นRed\n6
(โดยที่\n
เป็นตัวป้อนบรรทัด)
หากการตั้งค่าสถานะ kColor ใน com.apple.FinderInfo ไม่ได้ตั้งค่า Finder จะไม่แสดงวงกลมสำหรับสีถัดจากไฟล์ หากการตั้งค่าสถานะ kColor เป็นสีส้มและไฟล์มีแท็กสีแดง Finder จะแสดงทั้งวงกลมสีแดงและสีส้ม คุณสามารถตั้งค่าสถานะ kColor ด้วย 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")'
เป็นไวยากรณ์ plist แบบเก่าสำหรับสิ่งนี้:
<?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 สีแดงคือ C, สีส้มคือ E, สีเหลืองคือ A, สีเขียวคือ 4, สีน้ำเงินคือ 8, สีม่วงแดงคือ 6, และสีเทาคือ 2 (ธงที่จะเพิ่ม 1 ในค่าที่ไม่ได้ใช้ใน OS X)