web-dev-qa-db-fra.com

Que signifie le @ sur la sortie de "ls" sur le terminal OS X '?

Lorsque je fais une ls dans un répertoire, j'obtiens le résultat suivant:

drwxr-xr-x@ 12 xonic  staff    408 22 Jun 19:00 .
drwxr-xr-x   9 xonic  staff    306 22 Jun 19:42 ..
-rwxrwxrwx@  1 xonic  staff   6148 25 Mai 23:04 .DS_Store
-rw-r--r--@  1 xonic  staff  17284 22 Jun 00:20 filmStrip.cpp
-rw-r--r--@  1 xonic  staff   3843 21 Jun 21:20 filmStrip.h

Je me demandais ce que signifie le @.

79
xon1c

Cela indique que le fichier a des attributs étendus. Utilisez ls -l@ pour les voir.

Vous pouvez utiliser xattr pour éditer ces attributs. xattr -h vous donnera l'aide en ligne pour cela.

73

De mémoire, je pense que cela a quelque chose à voir avec le fichier ayant des attributs étendus disponibles. Voici un lien vers une discussion similaire:

http://discussions.Apple.com/thread.jspa?messageID=5791060

Donc si vous voyez un fichier avec un "@" quand vous faites un ls, essayez ceci:

xattr -l <filename>

Cela devrait vous montrer les attributs étendus.

Vous pouvez consulter l'aide de xattr pour plus de détails:

xattr --help
usage: xattr [-l] file [file ...]
       xattr -p [-l] attr_name file [file ...]
       xattr -w attr_name attr_value file [file ...]
       xattr -d attr_name file [file ...]

The first form lists the names of all xattrs on the given file(s).
The second form (-p) prints the value of the xattr attr_name.
The third form (-w) sets the value of the xattr attr_name to attr_value.
The fourth form (-d) deletes the xattr attr_name.

options:
  -h: print this help
  -l: print long format (attr_name: attr_value)

Il semble que si vous regardez les attributs supplémentaires avec "-l" puis les supprimez avec "-d", vous obtiendrez probablement ce que vous voulez. Entraînez-vous dans un répertoire temporaire quelque part d’abord et assurez-vous que cela fonctionne;)

23
Brent Writes Code

Dans la page de manuel ls (1) sous Mac OS 10.6.1:

Si le fichier ou le répertoire a des attributs étendus, le champ des autorisations imprimé avec l'option -l est suivi du caractère "@". Sinon, si le fichier ou le répertoire contient des informations de sécurité étendues (telles qu'une liste de contrôle d'accès), le champ des autorisations imprimé par l'option -l est suivi d'un caractère '+'.

Dans la liste des options disponibles:

 -@      Display extended attribute keys and sizes in long (-l) output.

 -e      Print the Access Control List (ACL) associated with the file, if present, in long (-l) output.

Cela vous permettra de voir la valeur de ces options étendues. Les informations FWIW et ACL peuvent être définies à l'aide du même utilitaire chmod (1) que vous connaissez probablement déjà. :-)

Il ne semble pas qu'il soit facile de faire quoi que ce soit avec des attributs étendus à partir de la ligne de commande.

20
Ed Carrel

Depuis la page de manuel pour ls :

Si l'option -l est donnée, les informations suivantes sont affichées pour chaque fichier: mode de fichier, nombre de liens, nom du propriétaire, nom du groupe, nombre d'octets dans le fichier, mois abrégé, le dernier fichier modifié a été modifié, fichier heure modifié en dernier, fichier minute modifié en dernier et chemin d'accès.

En outre, pour chaque répertoire dont le contenu est affiché, le nombre total de blocs de 512 octets utilisés par les fichiers du répertoire est affiché sur une ligne distincte, immédiatement avant les informations relatives aux fichiers du répertoire.

Si le fichier ou le répertoire a des attributs étendus, le champ des autorisations imprimé avec l'option -l est suivi du caractère "@". Sinon, si le fichier ou le répertoire contient des informations de sécurité étendues (telles qu'une liste de contrôle d'accès), le champ des autorisations imprimé par l'option -l est suivi d'un caractère '+'.

Utilisation:

ls -la@e

pour plus d'informations sur les fichiers ou les répertoires avec ces attributs/informations.

9
user53528

Ceci est lié aux attributs étendus et au contrôle d'accès.

Dans la page de manuel de Sun ls :

Le caractère après les autorisations est un indicateur d'ACL ou d'attributs étendus. Ce caractère est un @ si des attributs étendus sont associés au fichier et que l'option - @ est activée. Sinon, ce caractère est un signe plus (+) si une liste de contrôle d'accès non triviale est associée au fichier ou un caractère d'espacement dans le cas contraire.

8
Andre Miller

Le "@" signifie que le fichier est associé à des "attributs étendus".

Si vous faites "ls -@ -l", vous pouvez voir quels attributs il y a pour chaque fichier. Vous pouvez également faire quelque chose comme "xattr -l pgsql.so" pour vider les attributs d'un fichier particulier.

Il s’agit en général de choses comme FinderInfo d’ancienne école, des informations sur le codage du texte ou des informations sur la "quarantaine" qui vous donnent le message "Ce fichier a été téléchargé du Web, êtes-vous sûr de vouloir l’ouvrir?" Attention.

7
David Gelhar

Dans la page de manuel de ls :

Le format long
[…] Si le fichier ou le répertoire a des attributs étendus, le champ de droits imprimé avec l'option -l est suivi du caractère '@'. […]

6
Gumbo