@在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

@是什么意思?

Answers:


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无效。是-l。
Mark E. Haase 2012年

4
如果要查找所有类型的文件并删除OSX中的隔离属性:find . -iname '*.ext' -print0 | xargs -0 xattr -d com.apple.quarantine。这就是为什么我发现这个问题。
jcollum 2015年

2
同样,对于SEO:@是“ at符号”
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 {} \;
Michael

26

至少在Snow Leopard中,您可以执行以下操作以显示更多信息:

ls -l@

xattr手册中的权利:Attribute names can also be displayed using ``ls -l@''.
ordonezalex




0

在OSX上,这表明存在与文件关联的元数据。


这也不意味着在Linux上的符号链接-符号链接在权限的第一列中用l表示,或者断开的链接在路径末尾(而不是在权限字符串的末尾)用@表示。
BR 2010年

知道了,已编辑。
kbyrd

0

除了Michael Mrozek的答案:

在OSX 10.10(Yosemite)上,您必须使用以下attrx参数:

xattr -l file
xattr -w attr_name attr_value file
xattr -d attr_name file
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.