Neat. So you can associate a file with a tag by dragging it into the appropriate TAGS section of a sidebar. You can tag a file while you’re saving it. You can also
Tags are kept in Extended Attributes. In com.apple.metadata:_kMDItemUserTags to be exact.
xattr /Users/krypted/Desktop/Test.pdf
The output of xattr with no options is as follows:
com.apple.FinderInfo
com.apple.metadata:_kMDItemUserTags
com.apple.quarantine
Or use -l to get a more detailed output:
xattr -l /Users/krypted/Desktop/Test.pdf
The output of which would include the tag:
com.apple.FinderInfo:
00000000 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 00 |................|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000020
com.apple.metadata:_kMDItemUserTags:
00000000 62 70 6C 69 73 74 30 30 A1 01 55 52 65 64 0A 36 |bplist00..URed.6|
00000010 08 0A 00 00 00 00 00 00 01 01 00 00 00 00 00 00 |................|
00000020 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 10 |..|
00000032
com.apple.quarantine: 0041;520d0314;Safari;
This output is a bit not awesome. So
mdls -name kMDItemUserTags /Users/krypted/Desktop/Test.pdf
The output is the kMDItemUserTags array with a list of objects in the array:
kMDItemUserTags = (
Red
)
The above output is much more easily parsed and managed; however, the objects need to have been indexed by Spotlight. You can also use mdfind to look at user tags with kMDItemUserTags to see a list of tagged content. Or, you can constrain the output using == and a quoted parameter:
mdfind "kMDItemUserTags == Red"
The output is a list of all files with that tag. Finally, you can
xattr -c /Users/krypted/Desktop/Test.pdf