4

I dumped a bunch of files (music and otherwise) onto my shiny new Macbook, and since I'm more comfortable with linux than Mac (at this point) I tend to use the terminal.

I did a ls -al on the files I'd transfered, and some had an "@" at the end of the permissions string, and some did not.

Something like:

drwxrwxr--@ 93 user staff etc.
drwxrwxr-- 107 user staff etc.

The ones without "@" could be seen in Finder and accessed by other programs-- the "@" files and directories were invisible. Can anyone explain what the "@" means, and how to chmod (or whatever) so I can use these files? I assume it is some sort of system flag but I don't know how to unset it. Chmod 777 had no effect and I already own the files.

Thanks

Jared Harley
  • 13,012
user27150
  • 165

2 Answers2

6

This link explains how the '@' symbol is used to signify that the file has 'additional attributes' that can be seen by typing:

xattr -l < filename >

The additional attributes are used to store extra information about the file. For example when a file is downloaded from the internet, it may contain an additional attribute that triggers the 'warning this file was downloaded..' message upon execution.

JT.WK
  • 1,971
5

As JT.WK said, the '@' indicates extended attributes attached to the file. Try using ls -lO@ on the files -- the -O shows file flags, and the -@ shows the names (but not contents) of the extended attributes. My guess is that you're going to see com.apple.FinderInfo xattrs, and the hidden flag (note: I'm assuming Mac OS X 10.5 or 10.6 here -- older versions didn't map the invisible Finder flag into a a file flag). Assuming I'm right about that, you can clear the flag with:

chflags nohidden /path/to/file

(If you're using Mac OS X v10.4, Finder flags weren't nearly as accessible from the command line -- let me know and I'll see what I can come up with.)