I want to go fishing in my work Mac’s ~/Library folder for some app settings files, but Apple has decided to hide it from me. I could use -shift-G, or
open ~/Library, but that’s not the kind of guy I am. Why is it hidden? The filename doesn’t start with a dot, so the Finder’s going on something other than Unix convention there. Were this 1998, I’d launch ResEdit and clear the folder’s HFS hidden flag. Maybe that’s still around in some form? I’ll look at the file’s extended attributes, because I’ve seen other HFS stuff like resource forks in there.
Arachnoscope:Desktop steelpangolin$ xattr -l ~/Library com.apple.FinderInfo: 00000000 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 |........@.......| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000020
Well, I was hoping for something more like com.apple.Hidden, but this is a start. Except it’s completely opaque. Googling… aha. A hidden flag is mentioned in chflags. But how do I confirm that this flag is actually why the Library’s omitted from the Finder’s listings? Is there any way to read flags?
Arachnoscope:Desktop steelpangolin$ ls /usr/bin | grep flag chflags
Nope. Back to the man pages; I’ll have to write one myself: lsflags.c.
Now I’ll give it a go:
Arachnoscope:Desktop steelpangolin$ gcc -std=c99 -Wall lsflags.c -o lsflags Arachnoscope:Desktop steelpangolin$ ./lsflags ~/Library /Users/steelpangolin/Library: hidden Arachnoscope:Desktop steelpangolin$ chflags nohidden ~/Library Arachnoscope:Desktop steelpangolin$ ./lsflags ~/Library /Users/steelpangolin/Library: Arachnoscope:Desktop steelpangolin$ xattr -l ~/Library
Hooray. The flag shows up, and it is indeed stored in the com.apple.FinderInfo xattr, because both disappear when I remove it. But what’s this, at the end of the first man page I found?
You can use “ls -lO” to see the flags of existing files.
Note to self: read all the way to the end next time.