Spot Işığı'nın harici sürücüyü dizine eklemesini önleme


9

Üzerinde macOS Sierra çalıştıran mevcut dahili sürücümle birlikte bazen üzerinde macOS Sierra bulunan harici bir SSD kullanıyorum.

Spotlight bir can sıkıcı şey benim harici sürücü kaçıyorum ben mesela o şey her arama yaptığında benim harici hem sonuç almak olduğunu olmasıdır ve ben istemiyorum şeydir iç sürücü.

Harici diskime önyükleme yaptığımda, dahili sürücü için bir Spotlight istisnası oluşturmayı denedim. Ancak, bunu yaparsam, dahili sürücüme önyükleme yaptığımda bile dahili sürücüm için bir istisna oluşturulmuş gibi görünüyor . Bu nedenle, Spotlight hariç tutmalarının sürücü tarafından değil, dizüstü bilgisayar tarafından bağlı olduğu anlaşılıyor - bu, hangi harici sürücüyü açtığımdan bağımsız olarak dahili sürücümün spot ışığı sonuçlarından hariç tutulacağı anlamına geliyor.

Harici diskimden çalışırken dahili diskim için Spotlight istisnası ve dahili diskimden çalışırken harici diskim için bir istisna oluşturmak mümkün müdür?

Yanıtlar:


14

Başlangıçta çalışan bu komutta önerilen tekniği kullanan bir komut dosyanız olabilir https://apple.stackexchange.com/a/91759/183505

DriveA'dan önyükleme yaparken (Harici DriveB için spot ışığı dizine eklemeyi devre dışı bırakmak istediğinizde) yürütebilirsiniz:

touch /Volumes/DriveB/.metadata_never_index

Harici DriveB'den önyükleme yaparken ve spot ışığını yeniden etkinleştirmek isterseniz, başlangıç ​​komut dosyanızın çalıştırılmasını sağlayabilirsiniz:

rm /Volumes/DriveB/.metadata_never_index

Bağlantılı yayın aynı zamanda spot ışığı hariç tutmalarını programlı olarak değiştirmenin diğer yollarını da listeler.

Oturum açıldığında başlatılacak bir komut dosyası eklemenin bazı yolları: /programming/6442364/running-script-upon-login-mac

İyi şanslar!


Düzenleme: Bash komut dosyalarını ve plist dosyalarını kullanma yöntemi


İlk olarak bir başlangıç ​​komut dosyası oluşturun. 'Da bir tane oluşturmayı seçtim~/script.sh

Yürütülebilir olduğundan emin olun chmod +x ~/script.sh

Bir sürücüyü spot ışığından gizlemek isteyen işletim sistemi için komut dosyası

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

İşletim sistemindeki sürücüyü dizine eklemek isteyen komut dosyası

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

Bir plist dosyası oluşturun ~/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>

Yükleme ve boşaltma ile test edin:

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

Bunu yapmanın en iyi yolu gibi görünüyor. Bir şekilde daha "yerli" bir şey umuyordum, ama bu oldukça güvenilir olmalı. Teşekkür ederim.
Skeleton Bow

Bunu uygulamaya çalışırken karşılaştığım bir sorundan bahsetmek istiyorum: rmkomut kullanarak çalıştırmak gerekir sudo. Gönderdiğiniz SO bağlantısındaki ilk yöntemi kullanıyorum. Bunun için herhangi bir öneriniz olur mu? Bunun üstesinden gelmek için launch daemon yöntemini kullanmam gerekir mi?
Skeleton Bow

Cevabımı biraz hileli bir çözümle güncelledim.
hapi

2
DriveToHideBoşluk varsa , komut dosyalarınız şu anda yazıldığı gibi başarısız olur. Eğer ile test edecekseniz, [ ... ]blobbing ve kelime bölünmesini önlemek için değişkenleri iki kez alıntılayın. Ya da [[ ... ]]test etmek için kullanın , daha sonra çift tırnak gerekli değildir.
user3439894

Güzel! teşekkürler user3439894. Cevabınızı önerinizi yansıtacak şekilde güncelledim.
hapi

2

Yeni cevap için özür dilerim (burada yeni olduğum için yorum yapmak için yeterli destek yok)

@hapi - Kafam karışabilir, ancak betikler yanlış mı?

Bir sürücüyü spot ışığından gizlemek isteyen işletim sistemi için komut dosyası: renames .metadata_never_index

İşletim sistemini sürücüyü dizine eklemek isteyen komut dosyası: oluşturur .metadata_never_index

.metadata_never_indexHacmin varlığının Spotlight'ın görmezden gelmesi anlamına geldiğini düşündüm ?

Teşekkürler


Deneyimlerim, .metadata_never_indexmacOS 10.13 üzerinde hiçbir etkisi olmadığını - superuser.com/questions/591406/… ...
Anon

2

Bugün, sudo touch /.metadata_never_index_unless_rootfs Endeksleri OS X Önyükleme Sürücülerinden ayırmak için her sürücünün kök dizininde bir kullanabileceğinizi öğrendim . Bu özel bir sürümüdür .metadata-never-index, çünkü önyükleme yaparken sürücüyü yeniden dizine alır, ancak yapmadığınızda değil.


-2

Diğer cevap bunu yapmak için iyi bir yöntem olmakla birlikte, yanlışlıkla sorunlara neden olabilir ve% 100 güvenilir olmayabilir. Harici işletim sisteminde Spotlight'tan daha esnek olduğu için Alfred'i kullanmak daha iyi bir yöntem olacaktır .


Bunun için Alfred'i nasıl kullanırsın?
Matt Sephton

İyi soru. Keşke nasıl hatırlasaydım. Diğer cevapta önerilen hariç tutma yöntemini kullanmak zorunda kalmadan klasörleri Alfred aramasından hariç tutmanın yolundan bahsettiğime inanıyorum .
İskelet Yay
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.