मुझे यह मज़बूती से काम करने के लिए नहीं मिला, लेकिन आप इस तरह से एक संपत्ति सूची को बचाने की कोशिश कर सकते हैं ~/Library/LaunchAgents/showall_external.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>showall_external</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>k=com.apple.Finder\ AppleShowAllFiles
sleep 3
if [[ -d /Volumes/WD/ ]]; then
if [[ $(defaults read $k) = 0 ]]; then
defaults write $k -bool true
osascript -e 'quit app "Finder"'
fi
else
if [[ $(defaults read $k) = 1 ]]; then
defaults write $k -bool false
osascript -e 'quit app "Finder"'
fi
fi</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Volumes/WD/</string>
</array>
</dict>
</plist>
इसके साथ लोड किया जा सकता है launchctl load ~/Library/LaunchAgents/showall_external.plist
या लॉग आउट करके वापस अंदर जाएं।
स्लीप कमांड के बिना / वॉल्यूम / WD / कभी-कभी तब मौजूद होता है जब वॉल्यूम अनमाउंट किया जा रहा हो। प्रोग्राम तब भी चलाया जाता है जब / Volumes / WD / के तहत फाइलों को संशोधित किया जाता है, इसलिए यह कुंजी के वर्तमान मूल्य की जांच करता है। यदि यह पिछले 10 सेकंड में चलाया गया है, तो प्रोग्राम थ्रॉटल हो जाता है, इसलिए इसे चलाने से पहले 10 सेकंड तक की देरी हो सकती है।
विमान नियंत्रण जब कोई USB डिवाइस संलग्न होता है, तो एक स्क्रिप्ट चला सकता है, लेकिन मैं यह पता नहीं लगा सकता कि जब USB डिवाइस डिस्कनेक्ट हो जाता है या वॉल्यूम हटा दिया जाता है, तो स्क्रिप्ट कैसे चला सकता है।