2011-12-16 27 views

Trả lời

10

Khuôn khổ OpenMeta là tiêu chuẩn của bên thứ ba không thực tế để thêm siêu dữ liệu vào tệp OS X sử dụng thuộc tính mở rộng. Nó được sử dụng bởi một số ứng dụng của bên thứ ba.

+0

+1 mặc dù, như một lưu ý phụ, có vẻ như [ít nhất một ứng dụng hỗ trợ trước đó OpenMeta sẽ (trên Mavericks) không còn tìm thấy tệp chỉ sử dụng thẻ OpenMeta] (http://apple.stackexchange.com/questions/ 24494/listing-all-openmeta-tags-and-associated-files # comment236164_24514). –

2

Nhấp chuột phải và Thông tin, hoặc cmd + i khi tập tin được chọn trong công cụ tìm sẽ mở ra một bảng thông tin và bạn có thể thêm dữ liệu ở phía trên sẽ được tham chiếu trong Spotlight. Được gọi là Nhận xét tiêu điểm. Bạn cũng có thể làm điều này với các thư mục. Tôi không chắc chắn nếu nó là cách tốt nhất nhưng nó là cách duy nhất tôi biết làm việc đó.

+0

Cũng phải có một công cụ để thực hiện điều này theo lập trình. – Thilo

+0

Tôi giả sử bạn sẽ có thể làm điều đó từ bản ghi chép và hoặc tự động. Đã có một cái nhìn nhanh chóng tại automator và có một tải của các hành động dựng sẵn chống lại các thư mục và tập tin để giả sử nó là khá làm-có thể – PurplePilot

7

Điều này nghe giống như một công việc cho các thuộc tính mở rộng. Bạn có thể lấy và đặt chúng từ dòng lệnh với xattr và từ các chương trình có getxattrsetxattr.

Tuy nhiên, các thuộc tính mở rộng là (ít nhất là thường) không được lập chỉ mục bởi Tiêu điểm. Ngoại lệ duy nhất tôi biết về điều này là thuộc tính "com.apple.metadata: kMDItemFinderComment", chứa một định dạng nhị phân có định dạng nhị phân với nhận xét có thể lập chỉ mục thực tế (xem câu trả lời của @ PurplePilot). This page tuyên bố tiêu điểm sẽ lập chỉ mục các xattrs khác có tiền tố "com.apple.metadata:", nhưng tôi chưa nhận được nó hoạt động.

+0

Cảm ơn câu trả lời của bạn. Có cách nào để có được tất cả các tập tin có một thuộc tính cụ thể? –

+0

Nếu bạn có thể lấy Spotlight để lập chỉ mục các mục nhập xattr, bạn sẽ có thể sử dụng nó để tìm kiếm các tệp có một xattr cụ thể. Nếu không, tôi nghĩ rằng bạn phải đi bộ toàn bộ hệ thống tập tin, và sử dụng getxattr để kiểm tra từng tập tin cho siêu dữ liệu. –

4

Nếu bạn muốn lập trình thiết lập "Finder luận" của một tập tin (xem @ câu trả lời PurplePilot của), hãy thử này:

1) Tạo một file xml plist thường xuyên với ý kiến ​​của bạn:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<string>My Custom Comment</string> 
</plist> 

2) Chuyển đổi plist sang định dạng nhị phân được chấp nhận:

plutil -convert binary1 my_custom_comment.plist 

3) Sử dụng xattr, thiết lập siêu dữ liệu kMDItemFinderComment:

xattr -wx "com.apple.metadata:kMDItemFinderComment" "`xxd -ps my_custom_comment.plist`" MyFile 

Bạn có thể xem với xattr -l MyFile rằng nhận xét ở đó và ở định dạng nhị phân phù hợp, nhưng vì lý do nào đó Finder không hiển thị nó (ít nhất là cho tôi) trong cột Nhận xét.

Tìm kiếm dựa trên cơ sở dữ liệu chú ý với mdfind "My Custom Comment" sẽ trả về tất cả các tệp có nhận xét này. thuộc tính

13

Tuỳ chỉnh tên làm việc cho tôi:

$ xattr -w com.apple.metadata:MyAttribute gfdylvyieo a.txt 
$ mdls -n MyAttribute a.txt 
MyAttribute = "gfdylvyieo" 
$ mdfind gfdylvyieo 
/private/tmp/a.txt 
$ mdfind 'MyAttribute=*' 
/private/tmp/a.txt 

xattr -wx là không cần thiết nếu giá trị là văn bản đơn giản:

xattr -w com.apple.metadata:kMDItemFinderComment aa file.txt 

Khi bạn thêm một bình luận Spotlight từ Finder, nó được lưu trữ cả hai như thuộc tính mở rộng và trong tệp .DS_Store. Nếu bạn chỉ thêm thuộc tính mở rộng, trường Nhận xét tiêu điểm sẽ trống trong Trình tìm kiếm, nhưng siêu dữ liệu nhận xét vẫn được lập chỉ mục bởi Tiêu điểm.