ป้องกันไม่ให้ Spotlight จัดทำดัชนีไดรฟ์ภายนอก


9

บางครั้งฉันใช้ SSD ภายนอกกับ macOS Sierra ร่วมกับไดรฟ์ภายในปัจจุบันของฉันซึ่งมี macOS Sierra ทำงานอยู่

สิ่งหนึ่งที่น่ารำคาญเกี่ยวกับสปอตไลท์คือเมื่อใดก็ตามที่ฉันค้นหาบางอย่างมันเมื่อฉันเรียกใช้จากไดรฟ์ภายนอกของฉันคือฉันได้รับผลลัพธ์จากทั้งภายนอก และ ไดรฟ์ภายในซึ่งเป็นสิ่งที่ฉันไม่ต้องการ

เมื่อบู๊ตในไดรฟ์ภายนอกฉันพยายามสร้างข้อยกเว้น Spotlight สำหรับไดรฟ์ภายใน อย่างไรก็ตามดูเหมือนว่าหากฉันทำเช่นนั้นจะมีการสร้างข้อยกเว้นสำหรับไดรฟ์ภายในของฉัน แม้ว่าฉันจะบูตเข้าสู่ไดรฟ์ภายในของฉันก็ตาม ดังนั้นดูเหมือนว่าการยกเว้น Spotlight จะเป็น ผูกพันโดยแล็ปท็อปไม่ใช่ไดรฟ์ - หมายความว่าไดรฟ์ภายในของฉันจะถูกแยกออกจากผลลัพธ์ที่น่าสนใจไม่ว่าจะเป็นไดรฟ์ภายนอกที่ฉันบูทจาก

เป็นไปได้หรือไม่ที่จะสร้างข้อยกเว้น Spotlight สำหรับไดรฟ์ภายในของฉันเมื่อฉันเรียกใช้จากไดรฟ์ภายนอกและเช่นเดียวกันกับข้อยกเว้นสำหรับไดรฟ์ภายนอกของฉันเมื่อฉันเรียกใช้จากไดรฟ์ภายในของฉัน

คำตอบ:


9

คุณอาจมีสคริปต์ที่ทำงานเมื่อเริ่มต้นซึ่งใช้เทคนิคที่แนะนำในโพสต์นี้ https://apple.stackexchange.com/a/91759/183505

เมื่อทำการบูทจากไดรฟ์ (เมื่อคุณต้องการปิดใช้งานการจัดทำดัชนีสปอตไลท์สำหรับไดรฟ์ภายนอก) คุณสามารถดำเนินการได้:

touch /Volumes/DriveB/.metadata_never_index

เมื่อทำการบูทจาก DriveB ภายนอกและคุณต้องการเปิดใช้งานสปอตไลท์อีกครั้งบางทีคุณอาจให้สคริปต์เริ่มต้นทำงานของคุณ:

rm /Volumes/DriveB/.metadata_never_index

โพสต์ที่เชื่อมโยงยังแสดงวิธีอื่น ๆ ในการปรับเปลี่ยนการยกเว้นสปอตไลต์แบบเป็นโปรแกรม

ต่อไปนี้เป็นวิธีการเพิ่มสคริปต์ที่จะเปิดใช้งานเมื่อลงชื่อเข้าใช้: https://stackoverflow.com/questions/6442364/running-script-upon-login-mac

โชคดี!


แก้ไข: วิธีการใช้สคริปต์ทุบตีและไฟล์ plist


ขั้นแรกให้สร้างสคริปต์เริ่มต้น ฉันเลือกที่จะสร้างหนึ่งที่ ~/script.sh

ตรวจสอบให้แน่ใจว่าปฏิบัติการได้ chmod +x ~/script.sh

สคริปต์สำหรับระบบปฏิบัติการที่ต้องการซ่อนไดรฟ์จากสปอตไลท์

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

สคริปต์บนระบบปฏิบัติการที่ต้องการทำดัชนีไดรฟ์

#!/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 ที่คุณโพสต์ คุณจะมีคำแนะนำสำหรับสิ่งนั้นหรือไม่? ฉันต้องใช้วิธีการเปิดตัว daemon เพื่อเอาชนะสิ่งนี้หรือไม่?
Skeleton Bow

ฉันอัปเดตคำตอบของฉันด้วยโซลูชันแฮ็คเล็กน้อย
hapi

2
ถ้า DriveToHide มีช่องว่างแล้ว สคริปต์ ตามที่เขียนในปัจจุบันจะล้มเหลว ถ้าคุณจะไปทดสอบด้วย [ ... ] จากนั้นให้ใส่เครื่องหมายคำพูดสองครั้งเพื่อป้องกันการ blobbing และการแยกคำ หรือใช้ [[ ... ]] เพื่อทดสอบจากนั้นไม่จำเป็นต้องมีการเสนอราคาซ้ำ
user3439894

ดี! ขอบคุณ user3439894 ฉันอัปเดตคำตอบเพื่อสะท้อนถึงข้อเสนอแนะของคุณ
hapi

2

ขอโทษสำหรับคำตอบใหม่ (ตัวแทนไม่เพียงพอที่จะแสดงความคิดเห็นในขณะที่ฉันใหม่ที่นี่)

@hapi - ฉันอาจงง แต่สคริปต์ผิดไปหรือเปล่า?

สคริปต์สำหรับระบบปฏิบัติการที่ต้องการซ่อนไดรฟ์จากสปอตไลท์: เปลี่ยนชื่อ .metadata_never_index

สคริปต์บนระบบปฏิบัติการที่ต้องการทำดัชนีไดรฟ์: สร้าง .metadata_never_index

ฉันคิดว่าการปรากฏตัวของ .metadata_never_index บนไดรฟ์ข้อมูลหมายถึง Spotlight ละเว้นหรือไม่

ขอบคุณ


ประสบการณ์ของฉันคือว่า .metadata_never_index ไม่มีผลกระทบใด ๆ กับ macOS 10.13 - superuser.com/questions/591406/... ...
Anon

-2

ในขณะที่คำตอบอื่น ๆ เป็นวิธีที่ดีในการทำเช่นนั้นอาจทำให้เกิดปัญหาโดยไม่ตั้งใจและอาจไม่น่าเชื่อถือ 100% วิธีที่ดีกว่าก็คือการใช้ อัลเฟรด เนื่องจากมีความยืดหยุ่นมากกว่า Spotlight บนระบบปฏิบัติการภายนอก


คุณจะใช้อัลเฟรดในเรื่องนี้อย่างไร
Matt Sephton

คำถามที่ดี. ฉันหวังว่าฉันจะจำได้อย่างไร ฉันเชื่อว่าฉันกำลังพูดถึงวิธีที่คุณสามารถแยกโฟลเดอร์ออกจากการค้นหาอัลเฟรด ไม่มี ต้องใช้วิธีการแยกที่แนะนำในคำตอบอื่น ๆ
Skeleton Bow
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.