2

Is there a command that can tell the label status (labels as applied in the info menu in the finder cmd+i) of an item from the command-line in OS X? Essentially, I just want to list all the items with or without labels in the current directory, but I can't find any way to pull them appart.

This will help in creating a timed script that runs in the background. Then I can apply a label in finder and expect an action automatically apply to that file without having to make special conditions or keep a curated file with a list.

2 Answers 2

4

Using ls, you can show the extended metadata of files:

$ ls -l@
-rw-r--r--@ 1 andrew  staff  1292910 Aug  9 11:36 labelled_file.jpg
    com.apple.metadata:kMDLabel_hlsi7t7nerhynemqvydgeb26de       50 

However, the quickest way to get labelled and unlabelled files is with an attribute search using mdfind:

$ mdfind -onlyin . -literal 'kMDItemFSLabel > 0'  # labels have value 50
/cwd/labelled_file.jpg

$ mdfind -onlyin . -literal 'kMDItemFSLabel == 0'
/cwd/all.jpg
/cwd/other.jpg
/cwd/files.jpg
0
2

You can use

xattr -p com.apple.FinderInfo filename

but you will need some work to process the output. See this answer on superuser for an example with a bash script and one with Python.

2
  • @dat5h if you find an answer useful please give an up vote and choose one of the answers as 'accepted'
    – Matteo
    Commented Nov 25, 2011 at 10:59
  • Thanks for reminding me to mark-as-accepted, I had forgotten. Also, I'd give upvotes if I had the reputation required. Commented Nov 28, 2011 at 4:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .