Spotlightが外部ドライブのインデックスを作成しないようにする


9

macOS Sierraを実行している現在の内部ドライブと組み合わせて、macOS Sierraを搭載した外部SSDを使用することがあります。

Spotlightの厄介な点の1つは、外部ドライブから実行しているときなど、何かを検索するときは常に、外部ドライブ内部ドライブの両方から結果が得られるということです。

外付けドライブで起動すると、内蔵ドライブにスポットライト例外を作成してみました。ただし、そのようにすると、内部ドライブを起動しても、内部ドライブに例外が発生するようです。したがって、Spotlightの除外はドライブではなくラップトップによってバインドされているように見えます。つまり、どの外部ドライブから起動しても、内部ドライブはSpotlightの結果から除外されます。

外部ドライブから実行しているときに内部ドライブのSpotlight例外を作成することは可能ですか?同様に、内部ドライブから実行しているときに外部ドライブの例外を作成することはできますか?

回答:


14

この投稿で提案されている手法を採用したスクリプトを起動時に実行することができますhttps://apple.stackexchange.com/a/91759/183505

DriveAから起動する場合(外部DriveBのスポットライトインデックスを無効にする場合)は、次のコマンドを実行できます。

touch /Volumes/DriveB/.metadata_never_index

外部のDriveBから起動し、スポットライトを再度有効にしたい場合は、起動スクリプトを実行することができます。

rm /Volumes/DriveB/.metadata_never_index

リンクされた投稿には、スポットライトの除外をプログラムで変更する他の方法もリストされています。

ログイン時に起動するスクリプトを追加するいくつかの方法を次に示します。https//stackoverflow.com/questions/6442364/running-script-upon-login-mac

幸運を!


編集:bashスクリプトとplistファイルを使用する方法


最初に起動スクリプトを作成します。で作成することにしました~/script.sh

実行可能であることを確認してください chmod +x ~/script.sh

ドライブをスポットライトから隠したいOS用のスクリプト

#!/bin/bash
flagLocation="/Volumes/DriveToHide"
flagRemoved=".ney_the_index"  # a new name

# if flag exists rename it.
if [ -a "$flagLocation/.metadata_never_index" ]; then 
    mv "$flagLocation/.metadata_never_index" "$flagLocation/$flagRemoved";
fi

ドライブのインデックスを作成するOS上のスクリプト

#!/bin/bash
flagLocation="/Volumes/DriveToHide"
flagRemoved=".ney_the_index"

if [ -a "$flagLocation/$flagRemoved" ]; then
    mv "$flagLocation/$flagRemoved" "$flagLocation/.metadata_never_index"
fi

if [ ! -a "$flagLocation/$flagRemoved" ] || [ ! -a "$flagLocation/.metadata_never_index" ] ; then
    touch "$flagLocation/.metadata_never_index"
fi

plistファイルを作成する ~/Library/LaunchAgents/com.user.loginscript.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>com.user.loginscript</string>
   <key>Program</key>
   <string>/Users/yourusername/script.sh</string>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>

ロードおよびアンロードしてテストします。

launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist

これがそのための最良の方法であると思われます。私はある意味でより「ネイティブ」なものを望んでいましたが、これはかなり信頼できるはずです。ありがとうございました。
Skeleton Bow

私がこれを実装しようとしているときに直面している問題について述べたいと思います。このrmコマンドでは、を使用して実行する必要がありsudoます。あなたが投稿したSOリンクの最初の方法を使用しています。それについて何か提案がありますか?これを克服するには、起動デーモン方式を使用する必要がありますか?
Skeleton Bow

私は少しハックな解決策で私の答えを更新しました。
ハピ

2
DriveToHideスペースがある場合、現在記述されているスクリプトは失敗します。を使用してテストする[ ... ]場合は、変数を二重引用符で囲んで、ブロブや単語分割を防ぎます。または[[ ... ]]、テストに使用すると、二重引用符は必要ありません。
user3439894 2017

いいね!ありがとうuser3439894。私はあなたの提案を反映するために答えを更新しました。
hapi

2

新しい答えの謝罪(私はここにいるのでコメントするにはコメントが足りません)

@hapi-私は混乱するかもしれませんが、スクリプトは間違った方法ですか?

ドライブをスポットライトから隠したいOS用のスクリプト:名前の変更 .metadata_never_index

ドライブのインデックスを作成するOS上のスクリプト:作成 .metadata_never_index

.metadata_never_indexボリューム上にが存在するということは、Spotlightがそれを無視することを意味すると思いましたか?

ありがとう


私の経験ではそれがある.metadata_never_index- MacOSの10.13にまったく影響ありませんsuperuser.com/questions/591406/... ...
アノン

2

sudo touch /.metadata_never_index_unless_rootfs 各ドライブのルートディレクトリのを使用して、OS Xブートドライブからインデックスを分離できることを本日知りました。これは、特別なバージョンのです。これは、.metadata-never-index起動時にドライブに(再)インデックスを作成しますが、そうでない場合にはドライブを作成しません。


-2

他の答えはそれを行うための良い方法ですが、それは不注意で問題を引き起こす可能性があり、100%信頼できるとは限りません。外部OSでは、Spotlightよりも柔軟性があるため、より良い方法はAlfredを使用することです。


これにはどのようにアルフレッドを使用しますか?
Matt Sephton、2018年

良い質問。覚えておきたいです。他の回答で提案された除外方法を使用せずにアルフレッド検索からフォルダーを除外する方法について話していたと思います。
Skeleton Bow、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.