Spotlight, kopyalanan veya taşınan bir dosyayı yeniden alıyor mu?


1

Bu köşe davaları ya da buna benzer şeyler hakkında hileli bir soru değil - sadece Spotlight ise Zaten içe aktarılmış ve veritabanına dizine alınmış bir dosya zaten var ve bu dosya taşınır veya kopyalanır (örneğin, kullanılan bir komut dosyası mv veya cp Spotlight üzerinde, 'bu aynı dosya, içine tekrar bakmaya gerek yok' belirlemek için sağlama toplamlarını (veya buna benzer bir şeyi) karşılaştırıyor mu, yoksa sadece hangi tür ithalatçı için bu tür için kayıtlı olduğunu söylüyor (tetikleyecektir) yeniden ayrıştırma).

Mümkünse, lütfen bunu nereden öğrendiğin kaynağı sağla; Sorun şu ki, hangisinin hangisi olduğundan emin olmak istiyorum. belirtildi Davranış (Spotlight gibi fırlama sistemiyle denenerek yanlış yönlendirilmek çok kolaydır).

Arka plan olarak, fikir oldukça zaman alan (bir dosyanın içe aktarılması ne kadar sürdüğü konusunda) özel bir Spotlight ithalatçısı olduğum ve dosyaları taşıyan bir kabuk betiği yazmanın güvenli olup olmadığını bilmek istiyorum. Spotlight'ın etkin olduğu klasörlerin etrafına girip çıkıyor, Spotlight'ın her şeyi çılgınca yeniden indekslemesine neden olmak konusunda endişelenmenize gerek kalmadan dizine.

Yanıtlar:


1

Ren geyişinin mv / cp ile olup olmadığını öğrenmek için. İle göz kulak olabilirsiniz fseventer . Spotlight ile aynı temel API'yi kullanarak dosya sistemi değişikliklerini gözlemler.


2

Temelde reindex gerekmez, çünkü UNIX de dahil olmak üzere çekirdekten geçen herhangi bir dosya G / Ç'si mv ve cp komutları, Spotlight dizininde güncellemeye neden olur. Bu şekilde, endeks daima günceldir.

Spotlight o zamandan beri kesinlikle uzun bir yol kat etti, ancak 10.4 Tiger çıktığında, nasıl çalıştığı hakkında dolaşan ve teknolojiyi açıklayan birkaç iyi makale vardı. Böyle bir makale kapsamlı Ars Technica Tiger İnceleme . Alıntı:

Önceden oluşturulmuş dizinler çok hızlı aramalara izin verir, ancak aynı zamanda olası bir sorunu önceden belirlerler. Bir dizinin dosya sisteminin geçerli durumuyla senkronize olması kolaydır ve güncel olmayan bir dizin çok kullanışlı değildir. Doğru sonuçlar sağlamak için, bir dizinin tüm dosyaların durumunu "gerçek zamanlı" olarak doğru şekilde yansıtması gerekir.

...

Her meta veri içe aktarıcısı, bir dosyayı taramaktan ve çıkartabileceği tüm meta verileri - dosya sistemi meta veri yapılarından, dosya içeriğinden veya dikkate almak istediği herhangi bir şeyden - geri almakla sorumludur. Meta veriler bir anahtar / değer çifti kümesi olarak döndürülür ve dosya için Spotlight indeks girişine eklenir.

Meta veri ithalatçı eklentileri, çeşitli Kütüphane klasörlerindeki Spotlight klasörlerinde depolanır. Her zaman olduğu gibi, daha spesifik yerler önceliklidir: ~/Library/Spotlight geçersiz kılmaları /Library/Spotlight, ve bunun gibi.

Tiger çekirdeğinden geçen herhangi bir g / Ç uygun meta veri içe aktarıcısını tetikler. Bu çekirdek seviyesi entegrasyonu, Spotlight endekslerinin her zaman güncel olmasını sağlar.

Bu yardımcı olur umarım. Diğerleri, Tiger çıktığından beri Spotlight mimarisindeki gelişmelere ışık tutabilir. Ben mütevazi bir kullanıcıyım.


Bu çok ilginç, fideli - OS X'in her çekirdek G / Ç işleminde yeniden endekslenecek kadar muhafazakâr olduğunu bilmiyordum. Cevabınızı kabul etmeye hazırım, aramak istediğim iki şeyi beklemekteyim (ya da başkası biliyorsa :) (1) mv / cp gibi işlemlerde gerçekleşen reindex tüm dosyayı ya da sadece Konum, erişim zamanları vb. gibi makul ölçüde değişen meta veriler? (2) Bu davranış Snow Leopard'da hala aynı mı? Leopard için pek çok Spotlight performans geliştirmesinin gerçekleştiğini biliyorum ve bu onların değişeceği türden bir şeye benziyor. Teşekkürler!
Adrian Petrescu

Umarım şimdiye kadar Spotlight bilgimi tükettiğimden biri cevabımı ekleyebilir.
fideli

Başlattığın için teşekkürler :) Soruna, ortaya attığın soruların cevaplarını çekmek için bir ödül ekledim, ama işe yaramazsa, sadece seninkini kabul edeceğim. Şerefe!
Adrian Petrescu
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.