การแก้ไขข้อมูลเมตาเฉพาะ iPhoto


2

ผู้สร้าง: 2011-01-16 แอชลีย์ $ mdls IMAG0107.jpg

...

kMDItemComment = "แมวออกมาด้วยลิ้น"

ดังนั้นนี่คือคำถามของฉัน xattr สามารถใช้ในการปรับเปลี่ยน บาง แอตทริบิวต์ ตัวอย่างเช่น:

Perpetua:2011-01-16 ashley$ xattr -l IMAG0107.jpg 
com.apple.metadata:kMDItemFinderComment:
00000000  62 70 6C 69 73 74 30 30 50 08 00 00 00 00 00 00  |bplist00P.......|
00000010  01 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00 00 09                    |..........|
0000002a
Perpetua:2011-01-16 ashley$ 

แต่นี่ไม่ใช่แอตทริบิวต์ที่ฉันต้องการแก้ไข ฉันคิดว่านี่เป็นเพราะ kMDItemComment เป็นข้อมูลเมตาเฉพาะของ iPhoto คำถามของฉันคือฉันจะแก้ไขได้อย่างไร


ไฟล์ด้านบนเป็นภาพถ่ายที่มีคำอธิบายที่ฉันเพิ่มจากภายใน iPhoto
Harv

ฉันเอาไปคุณได้ลองแล้ว apple.stackexchange.com/questions/6438/...
Nathan Greenstein

@ นาธานอันที่จริงฉันพยายามตอบคำถามนั่นคือวิธีที่ฉันค้นพบว่าข้อมูลเมตาถูกเก็บไว้ที่ไหน / อย่างไร ตอนนี้ฉันอยากรู้ว่าคน ๆ หนึ่งจะแก้ไขตัวเองได้อย่างไรและฉันจะชี้ผู้เขียนคำถามนั้นมาทางนี้ถ้ามีคนมีทางออก :-)
Harv

คุณหมายถึงวิธีแก้ไขไฟล์ XML หรือวิธีที่จะทำให้การเปลี่ยนแปลงของคุณติด?
Nathan Greenstein

1
@ankoff ใช่และนั่นคือปัญหา kMDItemFinderComment มาจาก com.apple.metadata .. ดูเหมือนว่า kMDItemFinderComment จะมาจากที่อื่นและฉันไม่แน่ใจว่าอยู่ที่ไหน ฉันสงสัยเมตาดาต้าเฉพาะของ iPhoto แต่ฉันไม่รู้วิธีการเข้าถึงอย่างถูกต้องเพื่อที่จะเขียน
Harv

คำตอบ:


2

com.apple.metadata: kMDItemFinderComment อยู่ในไบนารี รายการทรัพย์สิน รูป การใช้ xattr -p -l -x | tail +2 ให้คุณเพียงแค่ฐานสิบหกของแอตทริบิวต์ จากนั้นคุณสามารถท่อที่เข้า xxd -r เพื่อเปลี่ยนกลับเป็นไฟล์ไบนารี

จากตรงนั้นคุณสามารถเปิดไฟล์นั้นในเครื่องมือแก้ไขรายการทรัพย์สินของ Apple โดยสมมติว่าคุณได้ติดตั้งเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ จากนั้นคุณสามารถแก้ไขคุณสมบัติทางสายตา

จากนั้นคุณควรจะสามารถนำค่าที่แก้ไขไปใช้กับไฟล์ได้ xxd -p -x และ xattr -w -x.

ทั้งหมดนี้ยุ่งเหยิงกว่าที่เราต้องการสำหรับสถานที่พักเดี่ยวที่เป็นเพียงแค่สตริง


อืมมม ฉันสามารถรับ ASCII / Binary ที่เทียบเท่าได้แล้วโดยทำ xattr -l & lt; foo & gt; .jpg สตริงกลับมาที่ "bplist00P" .. ซึ่งฉันไม่แน่ใจว่าจะทำอย่างไร
Harv

นั่นไม่ใช่สตริง นั่นคือ "เวทมนต์" ที่จุดเริ่มต้นของรูปแบบไฟล์รายการคุณสมบัติไบนารี ในตัวอย่างข้างต้นสตริงเป็นสตริงว่างเปล่า
ohmantics

หากคุณกำลังทำงานกับไบนารี plist ไฟล์แล้ว plutil -convert xml1 file.plist อาจเป็นประโยชน์

ฉันไม่สามารถทำงานนี้ได้ ขอบคุณสำหรับคำแนะนำว่า
Harv

2

สามารถทำได้ในวิธี "Mac" (โดย AppleScript) โดยใช้สคริปต์ต่อไปนี้ setFinderComment.scpt

#!/usr/bin/osascript
on run argv
    set filePath to POSIX file (item 1 of argv)
    set fileComment to item 2 of argv
    set theFile to filePath as alias
    tell application "Finder" to set comment of theFile to fileComment
end run

จากนั้นคุณทำให้มันปฏิบัติการได้ chmod a+x setFinderComment.scpt และใช้เป็น

setFinderComment.scpt filename comment

0

โปรเจ็กต์ OpenMeta กำลังใช้คุณสมบัติเพิ่มเติมเพื่อจัดเก็บแท็ก ซอร์สโค้ดมีอยู่ที่ https://code.google.com/p/openmeta/ . ส่วนหนึ่งของโครงการนั้นเป็นเครื่องมือบรรทัดคำสั่งแบบเปิด

เครื่องมือบรรทัดคำสั่งนี้ทำงานบนชุดคุณสมบัติที่กำหนดไว้ล่วงหน้าที่ใช้โดย OpenMeta แต่เนื่องจากเป็นโอเพ่นซอร์สจึงสามารถปรับเปลี่ยนได้อย่างง่ายดายเพื่อให้สามารถตั้งค่าบรรทัดคำสั่งเพิ่มเติมสำหรับการตั้งค่า / อ่านแอตทริบิวต์เพิ่มเติมอื่น ๆ

ไม่ใช่โซลูชันโดยตรง แต่เป็นเส้นทางไปสู่โซลูชันหรือไม่


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