lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

Hindra Spotlight från att indexera externa hårddiskar

2010-05-27

Spotlight är bra, men det är irriterande att den tvunget måste indexera alla diskar den får tag på. Här skapar vi en tjänst via launchd som körs varje gång en disk monteras. Scriptet touchar filen .metadata_never_index (som förhindrar Spotlight från att skapa sitt index; läs detta) på disken. 

Först launchd-tjänsten.
Skapa filen:
~/Library/LaunchAgents/com.index.no_index.plist och stoppa in följande:

<?xml version="1.0" encoding="UTF-8"?>
<?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">
<dict>
<key>Label</key>
<string>com.index.no_index</string>
<key>Disabled</key>
<false/>
<key>Program</key>
<string>/Users/*DITT_NAMN*/no_index</string>
<key>StartOnMount</key>
<true/>
<key>RunAtLoad</key>
<false/>
<key>KeepAlive</key>
<false/>
<key>EnableTransactions</key>
<true/>
</dict>
</plist>

Glöm inte att ändra *DITT_NAMN*.

Nu skall scriptet som verkligen gör något skapas. Skapa filen no_index och stoppa in följande:
#!/bin/bash

for filename in /Volumes/*
do
if [[ $filename != "/Volumes/Macintosh HD" && $filename != "/Volumes/BOOTCAMP" ]]
then
file=$filename"/.metadata_never_index"
touch "$file"
fi
done

Gör filen exekverbar med chmod +x no_index.

Nu skall launchd kittlas:
$ launchctl load -w ~/Library/LaunchAgents/com.index.no_index.plist
$ launchctl start com.index.no_index