मैं एक शेल स्क्रिप्ट बनाने की कोशिश कर रहा हूं जो कि सफारी के बुकमार्क से सिपाही बुकमार्क नाम से एक शीर्ष-स्तरीय फ़ोल्डर को हटा देगा। दुर्भाग्य से एकमात्र तरीका जो मैंने PlistBuddy या plutil के साथ शब्दकोश आइटम को हटाने के लिए पाया है, वह इंडेक्स नंबर है।
यहाँ मूल संरचना है:
<dict>
<key>Children</key>
<array>
<dict> ... history ... </dict>
<dict> ... bookmarks bar ... </dict>
<dict> ... bookmarks menu ... </dict>
<dict> ... reading list ... </dict>
<dict> ... folder 1 ... </dict>
<!-- Delete this item -->
<dict>
<key>Sync</key>
<dict>
<key>Data</key>
<data>...</data>
<key>ServerID</key>
<string></string>
</dict>
<!-- By this key/value -->
<key>Title</key>
<string>Delete This Folder</string>
<key>WebBookmarkType</key>
<string>WebBookmarkTypeList</string>
<key>WebBookmarkUUID</key>
<string>21D71C04-F58B-43ED-B02C-7D9A208CCEC0</string>
</dict>
<dict> ... folder 3 ... </dict>
</array>
<dict>...</dict>
<key>Title</key>
<string></string>
<key>WebBookmarkFileVersion</key>
<integer>1</integer>
<key>WebBookmarkType</key>
<string>WebBookmarkTypeList</string>
<key>WebBookmarkUUID</key>
<string>892D35B5-DD40-418F-83D3-7AB77C2D9C03</string>
</dict>
</plist>
मैं इसके साथ पहली सरणी में संपूर्ण शब्दकोश आइटम हटाना चाहता हूं Title
मूल्य Delete This Folder
चूंकि आइटम और इंडेक्स नंबर हर समय बदल सकते हैं।
मैं इस आइटम को कुछ तरीकों से सफलतापूर्वक अनुक्रमणिका द्वारा हटा सकता हूं:
PlistBuddy:
PlistBuddy -c "delete :Children:5" /Users/myuser/Library/Safari/Bookmarks.plist
plutil:
plutil -remove Children.5 /Users/myuser/Library/Safari/Bookmarks.plist
लेकिन मुझे सही वाक्यविन्यास नहीं मिला है - अगर यह संभव है - उन उपयोगिताओं में से किसी के साथ शीर्षक से हटाना और न ही मुझे एक और कमांड लाइन उपयोगिता मिली है जो यह कर सकती है।
वैकल्पिक रूप से, मैं दो चरणों वाली प्रक्रिया का विरोध नहीं कर रहा हूं:
- शीर्षक और रिटर्न इंडेक्स नंबर खोजने के लिए प्लिस्ट फाइल को क्वेरी करें।
- ऊपर दिए गए इंडेक्स नंबर से डिलीट करें
मुझे यकीन नहीं है कि यह कहां से शुरू करना है और मुझे यकीन है PlistBuddy
, plutil
तथा defaults read
मेरे लिए मूल्य की खोज, गणना और वापसी नहीं है।
धन्यवाद, किसी भी सिफारिश की बहुत सराहना की जाएगी, मैं पिछले कुछ घंटों से बिना किसी भाग्य के तकनीकों की खोज और परीक्षण कर रहा हूं।