Cegah Spotlight dari pengindeksan drive eksternal

9

Saya kadang-kadang menggunakan SSD eksternal dengan macOS Sierra di atasnya, bersamaan dengan drive internal saya saat ini yang memiliki macOS Sierra berjalan di atasnya.

Satu hal yang mengganggu tentang Spotlight adalah bahwa setiap kali saya mencari sesuatu di dalamnya misalnya ketika saya menjalankan dari drive eksternal saya adalah bahwa saya mendapatkan hasil dari drive eksternal dan internal saya, yang merupakan sesuatu yang tidak saya inginkan.

Ketika boot ke drive eksternal saya, saya mencoba membuat pengecualian Spotlight untuk drive internal. Namun, tampaknya jika saya melakukan itu, pengecualian dibuat untuk drive internal saya bahkan ketika saya boot ke drive internal saya. Jadi, sepertinya pengecualian Spotlight terikat oleh laptop, bukan drive - artinya drive internal saya akan dikecualikan dari hasil sorotan tidak peduli dari mana drive eksternal saya booting.

Apakah mungkin untuk membuat pengecualian Spotlight untuk drive internal saya ketika saya menjalankan dari drive eksternal saya, dan juga pengecualian untuk drive eksternal saya ketika saya menjalankan dari drive internal saya?

Busur Kerangka
sumber

Jawaban:

14

Anda dapat memiliki skrip yang berjalan saat startup yang menggunakan teknik yang disarankan dalam posting ini https://apple.stackexchange.com/a/91759/183505

Saat mem-boot dari DriveA (saat Anda ingin menonaktifkan pengindeksan lampu sorot untuk DriveB Eksternal) Anda dapat menjalankan:

touch /Volumes/DriveB/.metadata_never_index

Saat mem-boot dari DriveB eksternal dan Anda ingin mengaktifkan kembali sorotan mungkin Anda bisa menjalankan skrip startup Anda:

rm /Volumes/DriveB/.metadata_never_index

Posting yang ditautkan juga mencantumkan cara lain untuk secara sistematis mengubah pengecualian lampu sorot.

Berikut adalah beberapa cara untuk menambahkan skrip yang akan diluncurkan saat login: /programming/6442364/running-script-upon-login-mac

Semoga berhasil!


Sunting: Metode menggunakan skrip bash dan file plist


Pertama buat skrip startup. Saya memilih untuk membuatnya di~/script.sh

Pastikan itu dapat dieksekusi chmod +x ~/script.sh

Script untuk OS yang ingin menyembunyikan drive dari sorotan

#!/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

Script pada OS yang ingin mengindeks drive

#!/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

Buat file 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>

Uji dengan memuat dan menurunkannya:

launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist
hapi
sumber
Sepertinya ini adalah cara terbaik untuk melakukannya. Saya berharap untuk sesuatu yang lebih "asli" dengan cara, tetapi ini harus cukup dapat diandalkan. Terima kasih.
Skeleton Bow
Saya ingin menyebutkan masalah yang saya hadapi ketika mencoba mengimplementasikan ini: rmperintah mengharuskan saya menjalankannya menggunakan sudo. Saya menggunakan metode pertama dalam tautan SO yang Anda poskan. Apakah Anda punya saran untuk itu? Apakah saya perlu menggunakan metode peluncuran daemon untuk mengatasi ini?
Skeleton Bow
Saya memperbarui jawaban saya dengan solusi yang sedikit membingungkan.
hapi
2
Jika DriveToHidememiliki spasi, maka skrip Anda , seperti saat ini ditulis, akan gagal. Jika Anda akan menguji dengan [ ... ]maka kutip ganda variabel untuk mencegah gumpalan dan pemisahan kata. Atau gunakan [[ ... ]]untuk menguji, maka tidak perlu mengutip ganda.
user3439894
Bagus! terima kasih user3439894. Saya memperbarui jawaban untuk mencerminkan saran Anda.
hapi
2

Permintaan maaf untuk jawaban baru (tidak cukup perwakilan untuk berkomentar karena saya baru di sini)

@ hapi - Saya mungkin bingung, tetapi apakah skripnya salah?

Skrip untuk OS yang ingin menyembunyikan drive dari sorotan: mengganti nama .metadata_never_index

Script pada OS yang ingin mengindeks drive: create .metadata_never_index

Saya pikir kehadiran .metadata_never_indexpada volume berarti Spotlight mengabaikannya?

Terima kasih

stoutyhk
sumber
Pengalaman saya adalah bahwa .metadata_never_indextidak memiliki dampak apa pun pada macOS 10.13 - superuser.com/questions/591406/ ... ...
Anon
2

Saya belajar hari ini bahwa Anda dapat menggunakan sudo touch /.metadata_never_index_unless_rootfs direktori root dari setiap drive untuk memisahkan Indeks dari OS X Boot-Drives. Ini adalah versi khusus .metadata-never-index, karena akan (kembali) mengindeks drive ketika Anda boot dari itu, tetapi tidak ketika Anda tidak.

Kappuchino
sumber
-2

Sedangkan jawaban lain adalah metode yang baik untuk melakukannya, itu dapat secara tidak sengaja menyebabkan masalah dan mungkin tidak 100% andal. Metode yang lebih baik adalah menggunakan Alfred , karena lebih fleksibel daripada Spotlight, pada OS eksternal.

Busur Kerangka
sumber
Bagaimana Anda menggunakan Alfred untuk ini?
Matt Sephton
Pertanyaan bagus. Saya berharap saya ingat caranya. Saya yakin saya sedang berbicara tentang cara Anda dapat mengecualikan folder dari pencarian Alfred tanpa harus menggunakan metode pengecualian yang disarankan dalam jawaban lain.
Skeleton Bow