Trình tìm kiếm của Mavericks lưu trữ các thẻ như thế nào?


13

Tôi chưa sử dụng Mavericks.
Công cụ tìm có lưu trữ các thẻ trong chính tệp đó không (ví dụ: xmp) hoặc được cung cấp bởi một loại Cơ sở dữ liệu nào đó? hay cái gì?


Bạn có thể muốn dùng thử trước khi đặt câu hỏi về OS X Maverick.
Ramhound

Lưu ý rằng cách tiếp cận Mavericks để gắn thẻ trong hệ thống tệp không bị giới hạn đối với Finder.
Graham Perrin

Câu trả lời:


12

Mavericks lưu các thẻ như thuộc tính mở rộng

Bây giờ mà các NDA được nâng lên: Mavericks tiết kiệm thẻ như một thuộc tính mở rộng , trong com.apple.metadata:_kMDItemUserTags. Bạn có thể tự kiểm tra chúng bằng cách sử dụng lệnh mdls như thế này:

mdls -name kMDItemUserTags Xin chào

Đánh giá sử thi của John Siracusa về OS X 10.9 mô tả kiến ​​trúc thẻ một cách chi tiết.


3
Và các thuộc tính mở rộng được lưu trữ như thế nào?
thỉnh thoảng

1

Các thẻ được lưu trữ trong một thuộc tính mở rộng có tên com.apple.metadata: _kMDItemUserTags. Giá trị của nó là một danh sách thuộc tính nhị phân chứa một chuỗi các chuỗi:

$ xattr -p com.apple.metadata:_kMDItemUserTags file3|xxd -r -p|plutil -convert xml1 - -o -
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>Red
6</string>
    <string>aa</string>
    <string>Orange
7</string>
    <string>Yellow
5</string>
    <string>Green
2</string>
    <string>Blue
4</string>
    <string>Purple
3</string>
    <string>Gray
1</string>
</array>
</plist>

Các thẻ cho màu sắc có các giá trị như Red\n6(trong đó \nlà một nguồn cấp dữ liệu).

Bạn có thể sử dụng xattr để sao chép các thẻ từ tệp này sang tệp khác:

xattr -wx com.apple.metadata:_kMDItemUserTags "$(xattr -px com.apple.metadata:_kMDItemUserTags file1)" file2
xattr -wx com.apple.FinderInfo "$(xattr -px com.apple.FinderInfo file1)" file2

Nếu cờ kColor trong com.apple. DownloaderInfo không được đặt, Finder sẽ không hiển thị các vòng tròn cho màu bên cạnh các tệp. Nếu cờ kColor được đặt thành màu cam và tệp có thẻ màu đỏ, Finder sẽ hiển thị cả vòng tròn màu đỏ và màu cam. Bạn có thể đặt cờ kColor bằng AppleScript:

xattr -w com.apple.metadata:_kMDItemUserTags '("Red\n6","new tag")' ~/desktop/file4"
osascript -e 'tell application "Finder" to set label index of file "file4" of desktop to item 1 of {2, 1, 3, 6, 4, 5, 7}'

'("Red\n6","new tag")' là cú pháp plist kiểu cũ cho việc này:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>Red
6</string>
    <string>new tag</string>
</array>
</plist>

xattr -p com.apple.FinderInfo file|head -n1|cut -c28-29in giá trị của các bit được sử dụng cho cờ kColor. Màu đỏ là C, màu cam là E, màu vàng là A, màu xanh lá cây là 4, màu xanh là 8, màu đỏ là 6 và màu xám là 2. Cờ sẽ thêm 1 vào các giá trị không được sử dụng trong OS X.


1
Ví dụ: nếu tôi tạo một thẻ có tên "Tài chính", màu đỏ, thì thuộc tính mở rộng có lưu trữ "Tài chính" hoặc "Đỏ" không? Và làm thế nào là ánh xạ được thực hiện giữa tên và màu sắc?
Vaddadi Kartick

"Cờ sẽ thêm 1 vào các giá trị không được sử dụng trong OS X." Điều đó có nghĩa là gì?
Nicolas Barbulesco

Câu trả lời này là chi tiết. Nhưng sự khác biệt giữa màu sắc và các thẻ không rõ ràng.
Nicolas Barbulesco

Và thuộc tính mở rộng này được lưu trữ ở đâu?
Nicolas Barbulesco

1

Theo như tôi có thể đọc trên internet, từ một số nguồn, rất có thể Mavericks sẽ lưu trữ thông tin thẻ như một cái gì đó thực sự gần với chiến lược OpenMeta trong chính tệp. Cho đến bây giờ chúng tôi đã có thẻ và chúng tôi đã có một số ứng dụng trợ giúp trong ví dụ như Leap / Yep này. Nhưng đó chỉ là một thực tiễn tốt nhất được củng cố trên lớp dưới tiêu chuẩn -OpenMeta. Bây giờ Mavericks muốn thực hiện một bước nữa để tạo các thẻ (và cách chúng được mã hóa trong hệ thống tập tin) chính thức. Các thẻ cộng sẽ có một bộ màu cố định (7?) Và điều này có thể giúp chia tách các thẻ theo bộ để mang thêm ngữ nghĩa. Nhiều người trong chúng ta nghĩ rằng đây có thể là một bước tiến lớn trong tầm nhìn hệ thống tập tin của một nhà lãnh đạo ngành công nghiệp lớn để cuối cùng thúc đẩy các lựa chọn trong tương lai (các ứng dụng sẽ phụ thuộc nhiều vào điều này và có thể chính mac os sẽ mong đợi một số chú thích toàn hệ thống đặc biệt). Vì mục đích chi tiết, OpenMeta muốn siêu dữ liệu được mô tả là xattr (thuộc tính mở rộng) của các tệp để nó là thứ mà chính hệ thống tệp sẽ không quan tâm vì nằm ngoài phạm vi của nó.

Câu hỏi thực sự khá cũ và Mavericks sẽ sớm biến GM thực sự .. Vì vậy, mặc dù thực tế chỉ có thông tin liên quan đến tên miền Beta, đó là sự thật một cách hợp lý tất cả những gì tôi đã nói ở trên. Có một số cuộc thảo luận trên internet về chủ đề này và một điều đặc biệt là ở đây:

https://groups.google.com/d/msg/openmeta/DK4Of2QGkpM/KIK9VKaCQdkJ

Phần thú vị nhất là:

Các thẻ Apple được triển khai theo cách tương tự như các thẻ OpenMeta - như các thuộc tính mở rộng được gắn vào các tệp trong hệ thống tệp. Sự khác biệt duy nhất là tên thuộc tính là _kMDItemUserTags thay vì kMDItemOMUserTags ("OM" trong thẻ sau là "OpenMeta"). Dữ liệu thẻ cho cả thẻ Mavericks và thẻ OpenMeta là danh sách thuộc tính, nhưng tôi không nhìn vào định dạng bên trong của bảng để tôi không biết liệu chúng có giống nhau hay không. Tôi cũng không biết, nếu có, phương thức lưu trữ phụ trợ hoặc phương pháp thay thế được sử dụng cho các định dạng đĩa không phải HFS + - Tôi biết rằng sự cường điệu của Apple cho biết bạn cũng có thể gắn thẻ các tệp trên iCloud, vì vậy có thể có một số vấn đề ở đó.

Tuy nhiên, cái dài và ngắn của nó là ít nhất là trên các đĩa Mac cục bộ, dữ liệu thẻ OpenMeta sẽ cần được di chuyển sang thuộc tính _kMDItemUserTags mới để Maverick nhìn thấy. Không phải là một vấn đề lớn, nhưng ai đó cần phải viết một tiện ích để làm điều đó.


1
Thật kỳ lạ, nhóm.google.com/d/msg/openmeta/DK4Of2QGkpM/KIK9VKaCQdkJ là liên kết được cung cấp bởi Google cho bài đăng, nhưng theo liên kết đó đôi khi không tiết lộ bài đăng được yêu cầu.
Graham Perrin
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.