Ngăn chặn Spotlight lập chỉ mục ổ đĩa ngoài


9

Thỉnh thoảng tôi sử dụng ổ SSD ngoài có macOS Sierra trên nó, kết hợp với ổ đĩa trong hiện tại của tôi có macOS Sierra chạy trên nó.

Một điều khó chịu về Spotlight là bất cứ khi nào tôi tìm kiếm thứ gì đó trong đó, ví dụ như khi tôi chạy từ ổ đĩa ngoài là tôi nhận được kết quả từ cả ổ đĩa ngoài ổ đĩa trong, đây là điều tôi không muốn.

Khi khởi động vào ổ đĩa ngoài, tôi đã thử tạo ngoại lệ Spotlight cho ổ đĩa trong. Tuy nhiên, dường như nếu tôi làm điều đó, một ngoại lệ được tạo cho ổ đĩa trong của tôi ngay cả khi tôi khởi động vào ổ đĩa trong của mình. Do đó, có vẻ như các loại trừ Spotlight bị ràng buộc bởi máy tính xách tay, không phải ổ đĩa - có nghĩa là ổ đĩa trong của tôi sẽ bị loại khỏi kết quả đèn chiếu bất kể tôi khởi động từ ổ đĩa ngoài nào.

Có thể tạo ngoại lệ Spotlight cho ổ đĩa trong của tôi khi tôi đang chạy từ ổ đĩa ngoài của mình không, và tương tự như vậy là một ngoại lệ cho ổ đĩa ngoài của tôi khi tôi đang chạy từ ổ đĩa trong?

Câu trả lời:


14

Bạn có thể có một tập lệnh chạy khi khởi động sử dụng kỹ thuật được đề xuất trong bài đăng này https://apple.stackexchange.com/a/91759/183505

Khi khởi động từ DriveA (khi bạn muốn tắt lập chỉ mục đèn chiếu cho Ổ đĩa ngoài), bạn có thể thực thi:

touch /Volumes/DriveB/.metadata_never_index

Khi khởi động từ DriveB bên ngoài và bạn muốn bật lại đèn chiếu có lẽ bạn có thể thực thi tập lệnh khởi động của mình:

rm /Volumes/DriveB/.metadata_never_index

Bài đăng được liên kết cũng liệt kê các cách khác để thay đổi theo chương trình loại trừ ánh đèn sân khấu.

Dưới đây là một số cách để thêm tập lệnh sẽ khởi chạy khi đăng nhập: /programming/6442364/rucky-script-upon-login-mac

Chúc may mắn!


Chỉnh sửa: Phương pháp sử dụng tập lệnh bash và tập tin plist


Đầu tiên tạo một kịch bản khởi động. Tôi đã chọn để tạo một tại~/script.sh

Hãy chắc chắn rằng nó có thể thực thi được chmod +x ~/script.sh

Script cho HĐH muốn ẩn một ổ đĩa khỏi ánh đèn sân khấu

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

Tập lệnh trên HĐH muốn lập chỉ mục ổ đĩa

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

Tạo một tập tin 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>

Kiểm tra nó bằng cách tải và dỡ nó:

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

Có vẻ như đây là cách tốt nhất để làm điều đó. Tôi đã hy vọng một cái gì đó "bản địa" hơn theo cách này, nhưng điều này sẽ khá đáng tin cậy. Cảm ơn bạn.
Skeleton Bow

Tôi muốn đề cập đến một vấn đề tôi gặp phải khi cố gắng thực hiện điều này: rmlệnh yêu cầu tôi chạy nó bằng cách sử dụng sudo. Tôi đang sử dụng phương pháp đầu tiên trong liên kết SO mà bạn đã đăng. Bạn sẽ có bất kỳ đề nghị cho điều đó? Tôi có cần sử dụng phương thức khởi chạy daemon để khắc phục điều này không?
Skeleton Bow

Tôi cập nhật câu trả lời của tôi với một giải pháp hơi hack.
hapi

2
Nếu DriveToHidecó khoảng trắng, thì tập lệnh của bạn , như được viết hiện tại, sẽ thất bại. Nếu bạn định kiểm tra [ ... ]thì hãy trích dẫn gấp đôi các biến để ngăn chặn việc chia tách và tách từ. Hoặc sử dụng [[ ... ]]để kiểm tra, sau đó trích dẫn kép là không cần thiết.
dùng3439894

Đẹp! cảm ơn người dùng3439894. Tôi cập nhật câu trả lời để phản ánh đề nghị của bạn.
hapi

2

Xin lỗi cho câu trả lời mới (không đủ đại diện để nhận xét vì tôi mới ở đây)

@hapi - Tôi có thể nhầm lẫn, nhưng các kịch bản có sai vòng không?

Script cho HĐH muốn ẩn một ổ đĩa khỏi ánh đèn sân khấu: đổi tên .metadata_never_index

Tập lệnh trên HĐH muốn lập chỉ mục ổ đĩa: tạo .metadata_never_index

Tôi nghĩ rằng sự hiện diện của .metadata_never_indexâm lượng có nghĩa là Spotlight bỏ qua nó?

Cảm ơn


Kinh nghiệm của tôi là .metadata_never_indexkhông có tác động gì trên macOS 10.13 - superuser.com/questions/591406/iêu ...
Anon

2

Hôm nay tôi đã học được rằng bạn có thể sử dụng một sudo touch /.metadata_never_index_unless_rootfs trong thư mục gốc của mỗi ổ đĩa để tách các Chỉ mục khỏi Ổ đĩa khởi động OS X. Đây là một phiên bản đặc biệt .metadata-never-index, bởi vì nó sẽ (lại) lập chỉ mục ổ đĩa khi bạn khởi động từ nó, nhưng không phải khi bạn không.


-2

Trong khi câu trả lời khác là một phương pháp tốt để làm điều đó, nó có thể vô tình gây ra vấn đề và có thể không đáng tin cậy 100%. Một phương pháp tốt hơn sẽ là sử dụng Alfred , vì nó linh hoạt hơn Spotlight, trên hệ điều hành bên ngoài.


Làm thế nào bạn sẽ sử dụng Alfred cho việc này?
Matt Sephton

Câu hỏi hay. Tôi ước tôi nhớ như thế nào. Tôi tin rằng tôi đã nói về cách bạn có thể loại trừ các thư mục khỏi tìm kiếm Alfred mà không phải sử dụng phương pháp loại trừ được đề xuất trong câu trả lời khác.
Skeleton Bow
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.