Joined: 04 Dec 2006
|Posted: Thu Aug 27, 2009 10:47 am Post subject: Mac OS X Invisible and Locked Files
|Article by Tony Lawrence
If you install the Xcode Tools from your OS X CD, you get a lot of free development tools, and you also get the "setfile" and "getfileinfo" utilities. These can set or display a number of HFS+ file attributes that you may not have even known existed. Some of these seem to be either unimplemented or are perhaps for use only by certain programs, but two (visibility and locking) are useful for our use.
You can do this from the "Get Info" dialog also, but the command line method is "setfile -a L filename". After doing that, a "getfileinfo" will show a capital "L" in its listing:
created: 03/21/2008 15:21:51
modified: 03/21/2008 15:21:51
A locked file is safe from accidental removal:
override rw-r--r-- apl/apl uchg for lockme? y
rm: lockme: Operation not permitted
However, that means you can no longer edit it, too, so you don't want to do this to files you need to change often.
You can make a file invisible to Finder by using the "V" flag:
$ setfile -a V noseeum
$ getfileinfo noseeum
created: 03/21/2008 15:36:01
modified: 03/21/2008 15:36:01
Note that if a file is locked, you can't set this or any other attribute until you unlock it ("setfile -a l filename"). Even if you have set V, the file remains visible to "ls" in Terminal and will be visible even in Finder unless AppleShowAllFiles is "No" in your Library/Preferences/com.apple.finder.plist (that is the default, but you may have changed it). If you do need to change this back, you can use the Property List Editor from /Developer/Applications/Utilities, or just do this in Terminal:
defaults write com.apple.finder AppleShowAllFiles No
Or just vi the plist file directly - it's plain text.
You'd need to relaunch Finder (Apple Menu,Force Quit, choose Finder and click "Relaunch") for that change to take effect.