Que signifie le @ sur la sortie de «ls» sur le terminal OS X?

81

Lorsque lsje fais un 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 les @moyens.

xon1c
la source
1
xattr -r -d com.apple.TextEncoding *le supprimera probablement si c'est un fichier texte, comme un en-tête C ++ ou un fichier source, créé localement. Si vous l'avez téléchargé, alors vous xattr -r -d com.apple.quarantine *le supprimerez probablement, vous pouvez donc faire des choses comme éditer un Makefile. Pour une raison quelconque, Apple ne vous permet d'éditer un Makefile, mais ne vous permet d'exécuter un Makefile, avec com.apple.quarantine. Allez comprendre ...
jww

Réponses:

75

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

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

Ignacio Vazquez-Abrams
la source
8
Merci. trouvé com.apple.quarantine, voici ce que c'est et comment le gérer par souci d'exhaustivité: superuser.com/questions/28384/…
xon1c Le
24

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 que vous 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;)

Brent écrit du code
la source
Merci beaucoup! Il semblerait que le répertoire en question ait été marqué comme com.apple.quarantine, qui constitue une mesure de sécurité destinée à protéger contre les scripts et les applications douteux du réseau. Cela ne peut pas éventuellement causer le problème du répertoire ne listant pas. : / Je regarderai plus autour et posterai la solution si je la trouve.
20

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.

Ed Carrel
la source
2
Les attributs étendus peuvent être visualisés et manipulés avec la commande xattr (disponible uniquement dans OS X v10.5 et .6). Il ne semble pas avoir de page de manuel, mais xattr -himprimera son aide interne.
Gordon Davisson
xattra maintenant une page de manuel, et vous pouvez utiliser xattr -l filepour lister tous les attributs ou xattr -p attribute_name filepour imprimer un attribut spécifique.
Lri
9

De la page de manuel de 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é, dernier fichier modifié, dernier fichier modifié et le chemin d'accès.

De plus, 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.


la source
8

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

De 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 les 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.

Andre Miller
la source
7

Le "@" signifie que le fichier a des "attributs étendus" qui lui sont associés.

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

Il s’agit généralement de choses comme FinderInfo de l’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é à partir du Web, êtes-vous sûr de vouloir l’ouvrir?" Attention.

David Gelhar
la source
1
Les attributs étendus ne sont pas uniques à la plate-forme mac. Un certain nombre de systèmes d'exploitation prennent en charge cette fonctionnalité au niveau des fichiers.
Stefan Kendall
@iftrue: c'est finalement une fonctionnalité du système de fichiers.
Joey
6

De la page de manuel dels :

Le format long
[…] Si le fichier ou le répertoire a des attributs étendus, le champ des autorisations imprimé par l' -loption est suivi d'un caractère ' @'. […]

Gombo
la source
2
Notez que le '@' peut également masquer le '+' qui serait normalement présent pour indiquer que le fichier / répertoire est associé à une ACL. Essayez 'ls -le @ O' - cela listera xattrs, ACL (si présent), ainsi que tous les drapeaux.
Gordon Davisson