Ücretsiz, açık kaynak, Linux için
Scour Linux için anlık dosya arama.
Scour, makinedeki dosya ve klasörleri kendi indeksinde tutar ve aramaları
o indeksten cevaplar: bu makinede 4.842.854
kayıt, tek kelimelik arama 7,9 ms. Diski her
seferinde yürüyen find’dan farkı budur. Hesap,
bulut ve ağ isteği yoktur; Rust ile yazılmıştır, MIT/Apache-2.0 lisanslıdır.
Ölçüm
Ölçümler
Bütün sayılar çalışan bir kurulumdan, 9 Eylül 2026’da alındı. Yöntem ve ham ölçümler depoda MEASUREMENTS.md içinde duruyor.
- 4.842.854
- indekslenmiş dosya ve klasör
- ev dizini + ikinci bir NTFS birimi + sistem
- 7,9 ms
- tek kelimelik bir aramanın süresi
- soket, ayrıştırma, arama, sıralama, sayım ve kırk satır dahil
- 493 MB
- indeksin diskteki boyutu
- bellek eşlemeli — çekirdek baskı altında geri alabilir
- %0,8
- boşta bir çekirdeğin kullanımı
- iki disk birden canlı izlenirken, kimse bakmazken
Dört yüz
Dört arayüz, tek indeks
Aşağıdaki üç görüntü aynı anda, aynı makinede, aynı sorguyla alındı:
kind:code dm:7d size:>10kb. Aralarındaki tek fark
neye baktığın. Dördüncüsü, tek satırlık scour
komutu — ve onun dil modelleri için hâli, scour-mcp:
on bir salt-okunur araç, her cevabı sınırlı; scour mcp-config --for codex
hangi istemciye ne yapıştıracağını söyler.
Pencere
Masaüstünün kendi uygulaması
Rust ve Slint ile yazılmış yerel bir pencere. Çizimi işlemci yapar — ölçüldü, bu sahnede GPU’nun kazandırdığı bir şey yok ve 24 MB fazla bellek istiyor. On iki sütundan istediğini seçersin, sürüklersin; kesilen bir ad üzerine gelince tamamını söyler; önizleme yanda açılır. Bir kısayola bağlarsın, ikinci basış aynı pencereyi öne getirir.
Tarayıcı
Yerel bir köprü, uzak bir sunucu değil
Kendi makinende bir port açar ve sayfayı oradan verir. Aynı sütunlar, ızgara görünümü, CSV çıktısı, kopya bulma ve rapor sekmesi burada. Bağlantı jetonludur ve her çalıştırmada değişir; dışarıya açılan bir port yoktur.
Uçbirim
ratatui ile, ssh’ın öbür ucunda da
Aynı indeksin tam ekran uçbirim yüzü. Pencere açamadığın her yerde — uzak makine, kurtarma kabuğu, sunucu — arama aynı hızla oradadır. Ayrıca sade bir scour komutu her şeyi tek satırda verir.
Sorgu dili
Sorgu dili
Boşluk VE, | VEYA, !
DEĞİL; tırnak tam ifade, * ve
? joker, alan:değer
süzgeç. Bir kelime tek başına yeterlidir. Alan adları Türkçe de yazılabilir
(tür:kod). Tanınmayan bir alan hata vermez, metin
olarak aranır; scour explain sorgunun nasıl
okunduğunu söyler.
rapor- adında geçen her şey
ext:pdf size:>1mb- bir megabaytın üstündeki PDF’ler
kind:image dm:7d- son bir haftada değişen görseller
*.slint | *.rs- ikisinden biri
!target ext:tomltargetgeçmeyen TOML dosyalarıuser:root perm:/222- root’a ait, herkesin yazabildiği
Tam liste: scour syntax — ya da
belgelerdeki sorgu dili sayfası.
Nasıl haberdar olur
Dosya sistemini izleme
İndeks, dosya sistemi değiştikçe güncellenir. Linux’ta bunun iki yolu vardır; Scour yalnızca fanotify kullanır. Gerekçesi ve maliyeti aşağıda.
inotify — neden değil
Her dizin için ayrı bir izin ister. Bu makinede 609.322 klasör var; çekirdeğin oturum başına verdiği izin sayısı 524.288. Yani bu makine inotify ile izlenemez — Scour bütün bütçeyi tek başına yutsa bile yetmez.
Üstelik o bütçe paylaşımlıdır: editörün, IDE’n, dosya yöneticin ve her
npm run dev aynı havuzdan alır. Bir program
havuzu tüketirse hata onda değil, sıradaki programda çıkar — ve
o hata asla “izin kalmadı” demez. Her izin yaklaşık bir kilobayt takas
edilemez çekirdek belleği tutar.
fanotify
Dizinleri değil, dosya sisteminin kendisini işaretler. Bu makinede iki birim var, yani iki işaret. Klasör sayısının hiçbir önemi yoktur: bir milyon klasör de olsa iki işaret. Ölçülen boşta maliyeti, iki disk birden izlenirken bir çekirdeğin %0,16’sı.
Bir kez root gerekir
Bir dosya sisteminin tamamını dinlemek, tanımı gereği kendi dosyalarının
dışını da görmek demektir; çekirdek bunu CAP_SYS_ADMIN
arkasına koymuş, makul bir yer. Ama Scour bu yetkiyi almaz — bir an
için ödünç alır ve geri verir.
scour-watch, hiçbir Scour bileşenine bağlı
olmayan ve tek işi bu olan ayrı bir programdır: fanotify tanıtıcısını açar,
işaretleri koyar, çözer, yetkiyi düşürür ve servisi
çalıştırır. Devir ölçüldü, varsayılmadı: teslim alınan süreç
CapEff=0 ile döner ve iki ayrı yetki yükseltme
denemesi de EPERM verir. Hiçbir şey kurmaz —
setcap yok, kalıcı bağlama yok.
İnsanların bunun yerine sarıldığı çözüm — parolasız bir
sudo kuralı — burada daha kötüdür:
zincirdeki her ikili kullanıcının ev dizinindedir, dolayısıyla onlardan
birini gösteren parolasız bir kural, o dizine yazabilen her şey için
parolasız root demektir.
En önemlisi: zorunlu değil. Kurmazsan Scour yine çalışır — ama inotify’a düşmez, o yol bilerek yok. Birimin yazma sayacı kıpırdayınca yürüyerek eşitler: hiçbir şey kaçmaz, değişiklikler anında değil biraz sonra görünür. Sayacı olmayan ağ ve FUSE bağları için işaret şarttır.
Kurulum
Kurulum
Kurulum betiği hiçbir yerde parola sormaz. Yedi ikiliyi
~/.local/bin altına, menü girdisini ve simgeyi
~/.local/share altına koyar; GNOME ve KDE’de
Super+F’yi pencereye bağlar. Geri alması, o dosyaları silmektir.
Komutlar
tar xzf scour-0.2.0-alpha.1-linux-x86_64.tar.gz
cd scour-0.2.0-alpha.1-linux-x86_64
./install.sh Nerede çalışır. İkililer glibc 2.39’a göre derlendi: Ubuntu 24.04 ve üstü, Debian 13+, Fedora 40+ ve bütün yuvarlanan dağıtımlar. Ubuntu 22.04 ile Debian 12 daha eski bir glibc taşır; orada kaynaktan derlenir — bir dakika sürer.
Ubuntu 24.04 ve Fedora’da denendi — “derleniyor” değil, çalıştırıldı. Sıfırdan kurulmuş konteynerlerde, yabancı bir kullanıcı gibi: kurulum betiği çalıştı, yedi ikilinin hepsi sürümünü bildirdi, servis ev dizinini indeksledi, komut satırı aradı, uçbirim yüzü çizdi, tarayıcı yüzü sayfasını verdi ve pencere sanal bir ekranda açıldı.
Sınırlar
Pratikte yalnız Linux. Windows derlemesi tek bir makinede bir öğleden sonra açıldı, o kadar — test edilmedi, sürüm sayfasında zip’i deneyecek olan için duruyor. macOS derleniyor ama hiç çalıştırılmadı; derlenmek çalışmak değildir.
Sürüm 0.2.0-alpha.1. Alfa: bir makinede günlük kullanımda, 4,8 milyon kayıtta ölçüldü; indeks biçimi değişebilir. Hataları GitHub’da bildirin.