Ü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.

Rust MIT / Apache-2.0 Hesap yok Ağ yok Linux MCP
Kaynağı GitHub’da görüntüle

Ö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.

Scour’un masaüstü penceresi: koyu zeminde renklendirilmiş bir sorgu, tür rayı, sonuç listesi ve zaman dağılımı.

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.

Scour’un tarayıcı arayüzü: açık zeminde sorgu satırı, sol tarafta tür ve kapsam süzgeçleri, sonuç tablosu.

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.

Scour’un uçbirim arayüzü: solda tür, konum ve boyut süzgeçleri, ortada sonuç listesi, altta zaman dağılımı.

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.

01
rapor
adında geçen her şey
02
ext:pdf size:>1mb
bir megabaytın üstündeki PDF’ler
03
kind:image dm:7d
son bir haftada değişen görseller
04
*.slint | *.rs
ikisinden biri
05
!target ext:toml
target geçmeyen TOML dosyaları
06
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.