Что означает @ в ls -l?


121

Я использую Mac OSX. Когда я печатаю, ls -lя вижу что-то вроде

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

Что означает @?

Ответы:


116

Это указывает на то, что файл имеет расширенные атрибуты . Вы можете использовать xattrутилиту командной строки для просмотра и изменения:

xattr -l file # lists the names of all xattrs.
xattr -w attr_name attr_value file # sets xattr attr_name to attr_value.
xattr -d attr_name file # deletes xattr attr_name.
xattr -c file # deletes all xattrs.
xattr -h # prints help

9
В 10.8 (Mountain Lion) --list не действителен. Это-я.
Марк Э. Хаас

4
если вы хотите , чтобы найти все файлы типа и удалить карантинный Attr в OSX: find . -iname '*.ext' -print0 | xargs -0 xattr -d com.apple.quarantine. Вот почему я нашел этот вопрос.
Jcollum

2
Кроме того, для SEO: @ является "символом"
jcollum

Не работал для меня Пришлось использовать xattr -d вместо --delete.
геоидезическая

2
@jcollum еще лучше, find . -type f -xattr -print | xargs -0 xattr -d com.apple.quarantine(не уверен, если -type fэто необходимо). Хотя по какой-то причине ни одна из команд на данный момент не работает для меня ... Эта сработала для меня:find . -type f -xattr -exec xattr -d com.apple.quarantine {} \;
Майкл

26

В Snow Leopard, по крайней мере, вы можете сделать это, чтобы показать больше информации:

ls -l@

Справа из xattrруководства:Attribute names can also be displayed using ``ls -l@''.
ordonezalex

3

Он имеет расширенные атрибуты - см. Справочную страницу OSX здесь для получения дополнительной информации о ls.


2

Возможно, вы захотите взглянуть на этот пост в списках рассылки Apple. Это объясняет, что @ показывает, что Finder имеет расширенные атрибуты, отличные от ACL.



0

В OSX это указывает на наличие метаданных, связанных с файлом.


Это также не означает символическую ссылку в Linux - символические ссылки обозначаются символом l в первом столбце прав доступа, или прерывистые ссылки символом @ в конце пути, а не в конце строки прав доступа.
BR

Понял, отредактировал.
kbyrd

0

В дополнение к ответу Михаила Мрозека:

На OSX 10.10 (Yosemite) вы можете использовать эти параметры attrx:

xattr -l file
xattr -w attr_name attr_value file
xattr -d attr_name file
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.