Spotlight จัดเก็บดัชนีข้อมูลเมตาของที่ไหน


6

Mac OS X เก็บความคิดเห็น Spotlight ที่เกี่ยวข้องกับไฟล์ไว้ที่ไหน มันถูกจัดเก็บเป็นเมตาดาต้าไฟล์ HFS + หรือเป็นข้อมูลที่เก็บไว้โดยระบบปฏิบัติการอื่น?

คำตอบ:


7

ข้อมูลเมตาอยู่ภายในที่ซ่อนอยู่ .Spotlight-V100 โฟลเดอร์ที่รูทของปริมาณที่จัดทำดัชนี


4

ค่าของ kMDItemFinderComment แอตทริบิวต์ที่ได้รับการจัดเก็บไว้ในไดเรกทอรีที่เก็บข้อมูลเมตาเช่น /.Spotlight-V100/ ขึ้นอยู่กับ com.apple.metadata:kMDItemFinderComment คุณลักษณะเพิ่มเติม

Finder ยังเก็บความคิดเห็น Spotlight ของรายการทั้งหมดในโฟลเดอร์ใน .DS_Store ไฟล์.

คุณสามารถพิมพ์ความคิดเห็น Spotlight ด้วย mdls หรือ xattr:

mdls -n kMDItemFinderComment test.txt

xattr -p com.apple.metadata:kMDItemFinderComment file.txt | xxd -r -p | plutil -convert xml1 -o - - | ruby -rcgi -e 'puts CGI.unescapeHTML(STDIN.read.scan(/<string>(.*)<\/string>/m)[0][0])'

หากคุณใช้ Finder เพื่อเพิ่มความคิดเห็น Spotlight สำหรับไฟล์คุณไม่ได้รับอนุญาตให้เขียน (เช่นบางกลุ่มแอปพลิเคชัน /Applications/ ) ความคิดเห็นจะไม่ถูกบันทึกเป็นแอตทริบิวต์เพิ่มเติมและจะไม่ถูกหยิบขึ้นมาโดย Spotlight คุณสามารถเปิด Finder เป็น superuser หรือใช้ sudo xattr -w แม้

หากคุณลบ .DS_Store ไฟล์จากโฟลเดอร์และออกจากและเปิด Finder ความคิดเห็น Spotlight ของไฟล์ทั้งหมดในโฟลเดอร์หายไปจากหน้าต่างข้อมูลของ Finder's หากยังคงมีแอททริบิวต์เพิ่มเติมสำหรับความคิดเห็น Spotlight ความคิดเห็นนั้นจะเห็นได้จาก Spotlight

ถ้าคุณใช้ xattr เพื่อเพิ่ม com.apple.metadata:kMDItemFinderComment แอตทริบิวต์ขยายความคิดเห็นที่ถูกหยิบขึ้นมาโดย Spotligt แต่มันจะไม่ปรากฏในหน้าต่างข้อมูลของ Finder's

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

หากคุณใช้ AppleScript เพื่อเปลี่ยน comment คุณลักษณะของไฟล์ความคิดเห็นจะถูกบันทึกใน .DS_Store ไฟล์และแสดงใน Finder

osascript -e 'on run {f, c}' -e 'tell app "Finder" to set comment of (POSIX file f as alias) to c' -e end file.txt comment

(มีคำเตือนเหมือน CFURLGetFSRef was passed this URL which has no scheme ใน 10.8 เมื่อเส้นทางสัมพัทธ์ถูกแปลงเป็นนามแฝง แต่คุณสามารถเพิกเฉยได้)


โปรดให้วิธีการตรวจสอบนี้ ฉันไม่สามารถทำได้ ตั้งค่า: สร้างโฟลเดอร์ foo และ foo/barใช้ Automator เพื่อตั้งค่าความคิดเห็น Spotlight baz บน foo/bar. เปิด foo ใน Finder แล้วค้นหา baz ในนั้น. สิ่งนี้พบว่า foo/bar. จากนั้นเปิด Terminal ให้ลบ foo/.DS_Store (ไม่มี foo/bar/.DS_Store ) เปิดตัว Finder อีกครั้ง เปิด foo ใน Finder ให้ค้นหา baz : ยังคงพบ foo/bar.
Daniel Beck

มันใช้งานได้สำหรับฉัน! มีวิธีเขียนไหม ฉันได้ลองเขียนไปยัง plist รวมถึงสตริง hex แบบเข้ารหัส ASCII และไม่มีแท่ง ฉันสามารถเขียนคำค้นหาที่ Spotlight ใช้ xattr -w com.apple.metadata:_kMDItemUserTags บางทีฉันควรเขียนสิ่งนี้เป็นคำถามของมันเอง ...
beroe

1
@beroe ฉันแก้ไขคำตอบ
Lri

0

หากคุณพยายามที่จะแก้ไขความคิดเห็นที่น่าสนใจของไฟล์คุณสามารถดู / แก้ไขได้ภายใต้หน้าต่างรับข้อมูล (คำสั่ง + I) สำหรับไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.