16

I have this output on MacOSX:

$ ls -l
total 40
-rwxr-xr-x@ 1 levente  staff   52 30 Sep 15:38 pl
-rwxr-xr-x  1 levente  staff  675 14 Feb 17:07 plplay
-rwxr-xr-x@ 1 levente  staff  662 26 Jan 14:13 plstart
-rwxr-xr-x@ 1 levente  staff  296  1 Dec 11:50 plstop
-rwxr-xr-x@ 1 levente  staff  268 29 Dec 18:44 plweb

What does the "@" mean next to the permissions?

Leventix
  • 263
  • 2
  • 6

2 Answers2

21

It means those files have Extended Attributes from the file system that aren't the normal Unix permissions. Try doing xattr plstart and see what sort of things are set.

kashani
  • 3,922
  • 18
  • 18
  • Thanks, seems like TextMate had some properties on them: `com.macromates.caret`. Saving in MacVim cleared it. – Leventix Feb 14 '11 at 17:40
  • 2
    `ls -l@` will also list the extended attributes. Use `xattr -l` to see the xattr values as well as the just the attribute names. – Gordon Davisson Feb 14 '11 at 18:43
6

Kashani has it right on with use of xattr to display the extra fiddly bits. More specifically, on OSX, this is likely what is called the Resource Fork. The underlying filesystem that OSX uses, HFS+, has extra data segments that can store all manner of information. Incidentally, you can also see the same thing on SMB, NTFS, etc mounts in the form of ._FILENAME files.

For a full write up on Resource Forks see either the wikipedia article or the Apple Developer site.

Scott Pack
  • 14,717
  • 10
  • 51
  • 83
  • This is false, extended attributes are independent of the (now little-used) Resource Fork and tools like xattr that deal with one don't necessarily know anything about the other. – blahdiblah May 24 '11 at 20:10