@ Có nghĩa là gì trên đầu ra của l lv trên thiết bị đầu cuối của OS X?


81

Khi thực hiện lstrong một thư mục tôi nhận được đầu ra sau:

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

Tôi đã tự hỏi những gì @có nghĩa là.



1
xattr -r -d com.apple.TextEncoding *có thể sẽ xóa nó nếu tệp văn bản của nó, như tệp tiêu đề hoặc tệp C ++, được tạo cục bộ. Nếu bạn đã tải xuống, thì xattr -r -d com.apple.quarantine *có khả năng sẽ xóa nó, vì vậy bạn có thể thực hiện những việc như chỉnh sửa Makefile. Đối với một số lý do, Apple không cho phép bạn chỉnh sửa một Makefile, nhưng không cho phép bạn chạy một Makefile với com.apple.quarantine.
Bắt đầu đi

Câu trả lời:


75

Nó chỉ ra rằng các tập tin có thuộc tính mở rộng. Sử dụng ls -l@để xem chúng.

Bạn có thể sử dụng xattrđể chỉnh sửa các thuộc tính này. xattr -hsẽ cung cấp cho bạn sự giúp đỡ nội tuyến cho nó.


8
cảm ơn. tìm thấy com.apple.quarantine, đây là đó là những gì và làm thế nào để đối phó với nó vì lợi ích của sự hoàn chỉnh: superuser.com/questions/28384/...
xon1c

24

Ngoài đỉnh đầu, tôi nghĩ có liên quan đến tập tin có sẵn các thuộc tính mở rộng. Đây là một liên kết đến một cuộc thảo luận tương tự:

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

Vì vậy, nếu bạn thấy một tệp có "@" khi bạn thực hiện ls, hãy thử làm điều này:

xattr -l <filename>

Điều đó sẽ cho bạn thấy các thuộc tính mở rộng.

Bạn có thể kiểm tra trợ giúp của xattr để biết thêm chi tiết:

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)

Có vẻ như nếu bạn nhìn vào các thuộc tính bổ sung bằng "-l" và sau đó xóa chúng bằng "-d", nó có thể sẽ làm những gì bạn muốn. Thực hành điều này trong một thư mục tạm thời ở đâu đó trước tiên và đảm bảo rằng nó hoạt động;)


Cảm ơn rất nhiều! Dường như thư mục trong câu hỏi được đánh dấu là com.apple.quarantine, đây là một biện pháp bảo mật để bảo vệ chống lại các tập lệnh và ứng dụng tinh ranh từ mạng. Điều đó có thể không thể gây ra vấn đề của thư mục không được liệt kê. : / Tôi sẽ tìm xung quanh nhiều hơn và đăng giải pháp nếu tôi tìm thấy nó.

20

Từ trang man ls (1) trên Mac OS 10.6.1:

Nếu tệp hoặc thư mục có thuộc tính mở rộng, trường quyền được in bằng tùy chọn -l được theo sau bởi ký tự '@'. Mặt khác, nếu tệp hoặc thư mục có thông tin bảo mật mở rộng (như danh sách kiểm soát truy cập), trường quyền được in bởi tùy chọn -l được theo sau bởi ký tự '+'.

Từ danh sách tùy chọn có sẵn:

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

Chúng sẽ cho bạn thấy giá trị của các tùy chọn mở rộng đó. Thông tin FWIW, ACL có thể được đặt bằng cách sử dụng cùng tiện ích chmod (1) mà bạn có thể đã biết. :-)

Dường như không phải là một cách dễ dàng từ dòng lệnh để làm bất cứ điều gì với các thuộc tính mở rộng.


2
Các thuộc tính mở rộng có thể được xem và thao tác bằng lệnh xattr (chỉ khả dụng trong OS X v10.5 và .6). Nó dường như không có trang nam, nhưng xattr -hsẽ in trợ giúp nội bộ.
Gordon Davisson

xattrbây giờ có một trang man và bạn có thể sử dụng xattr -l fileđể liệt kê tất cả các thuộc tính hoặc xattr -p attribute_name fileđể in một thuộc tính cụ thể.
Lri

9

Từ trang man cho ls :

Nếu tùy chọn -l được cung cấp, thông tin sau sẽ được hiển thị cho mỗi tệp: chế độ tệp, số lượng liên kết, tên chủ sở hữu, tên nhóm, số byte trong tệp, tháng viết tắt, tệp ngày tháng được sửa đổi lần cuối, tập tin giờ sửa đổi lần cuối, tập tin phút sửa đổi lần cuối và tên đường dẫn.

Ngoài ra, đối với mỗi thư mục có nội dung được hiển thị, tổng số khối 512 byte được sử dụng bởi các tệp trong thư mục sẽ tự hiển thị trên một dòng, ngay trước thông tin cho các tệp trong thư mục.

Nếu tệp hoặc thư mục có thuộc tính mở rộng, trường quyền được in bằng tùy chọn -l được theo sau bởi ký tự '@'. Mặt khác, nếu tệp hoặc thư mục có thông tin bảo mật mở rộng (chẳng hạn như danh sách kiểm soát truy cập), trường quyền được in bởi tùy chọn -l sẽ bị hạ thấp theo ký tự '+'.

Sử dụng:

ls -la@e

để biết thêm thông tin về các tập tin hoặc thư mục với các thuộc tính / thông tin đó.


8

Điều này có liên quan đến các thuộc tính mở rộng và kiểm soát truy cập.

Từ trang người đàn ông của mặt trời ls :

Ký tự sau khi cấp phép là ACL hoặc chỉ báo thuộc tính mở rộng. Ký tự này là @ nếu các thuộc tính mở rộng được liên kết với tệp và tùy chọn - @ có hiệu lực. Mặt khác, ký tự này là ký tự dấu cộng (+) nếu ACL không tầm thường được liên kết với tệp hoặc ký tự khoảng trắng nếu không.


7

"@" Có nghĩa là tệp có "thuộc tính mở rộng" được liên kết với nó.

Nếu bạn làm " ls -@ -l", bạn có thể thấy những thuộc tính nào có cho mỗi tệp. Bạn cũng có thể làm một cái gì đó như " xattr -l pgsql.so" để kết xuất các thuộc tính cho một tệp cụ thể.

Thông thường, chúng là những thứ như FinderInfo của trường học cũ, thông tin mã hóa văn bản hoặc thông tin "cách ly" cung cấp cho bạn "Tệp này đã được tải xuống từ web, bạn có chắc chắn muốn mở nó không?" cảnh báo.


1
Các thuộc tính mở rộng không phải là duy nhất cho nền tảng mac. Một số hệ điều hành hỗ trợ tính năng cấp tệp này.
Stefan Kendall

@iftrue: cuối cùng, đó là một tính năng hệ thống tập tin.
Joey

6

Từ trang người đàn ông củals :

Định dạng dài
[ Vách ] Nếu tệp hoặc thư mục có thuộc tính mở rộng, trường quyền được in bởi -ltùy chọn được theo sau bởi một @ký tự ''. [Càng]


2
Lưu ý rằng '@' cũng có thể ẩn '+' thường có ở đó để chỉ ra rằng tệp / thư mục có ACL được liên kết với nó. Hãy thử 'ls -le @ O' - sẽ liệt kê xattrs, ACL (nếu có) và bất kỳ cờ nào.
Gordon Davisson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.