¿Qué significa el signo "@" en la salida ls -l?

11

Tengo esta salida en 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

¿Qué significa "@" al lado de los permisos?

Leventix
fuente

Respuestas:

15

Significa que esos archivos tienen atributos extendidos del sistema de archivos que no son los permisos normales de Unix. Intente hacer xattr plstart y vea qué tipo de cosas están configuradas.

kashani
fuente
Gracias, parece como TextMate tenía algunas propiedades en ellos: com.macromates.caret. Guardar en MacVim lo borró.
Leventix
1
ls -l@también enumerará los atributos extendidos. Use xattr -lpara ver los valores de xattr, así como solo los nombres de los atributos.
Gordon Davisson
5

Kashani lo acertó con el uso de xattrpara mostrar los bits extra complicados. Más específicamente, en OSX, esto es probablemente lo que se llama Resource Fork. El sistema de archivos subyacente que utiliza OSX, HFS +, tiene segmentos de datos adicionales que pueden almacenar todo tipo de información. Por cierto, también puede ver lo mismo en montajes SMB, NTFS, etc. en forma de archivos ._FILENAME.

Para una redacción completa sobre Resource Forks, consulte el artículo de wikipedia o el sitio para desarrolladores de Apple .

Scott Pack
fuente
Esto es falso, los atributos extendidos son independientes del Resource Fork (ahora poco utilizado) y las herramientas como xattr que tratan con uno no necesariamente saben nada sobre el otro.
blahdiblah