Ne tür bir arama yapmak istediğinizi belli değil. Unix'in herhangi bir yerinde çalışmasını istiyorsanız, sadece ana dizininizde ve yalnızca yol adı tabanlı aramalar yapmak istiyorsanız, aşağıdaki şema biraz kabuk korsanlığıyla ve standardın kullanılmasıyla uygulanabilir locatedb
:
- En az bir etiketli dosya içeren her bir dizinin standart bir alt dizine ihtiyacı vardır
.path-tags
;
- $ FILE dizindeki $ TAG (karakter içermemesi gereken
_
) linkini içeren her dosyada bir bağlantı vardır.$TAG_$FILE -> ../$FILE
locate-tag
Senaryonun ayrıntılarını size bırakıyorum ; sadece locate
komut ve kabuk korsanlığı kullanan iki ya da üç astar olmalıdır. (Eğer ilgilenirseniz, bir tane yazabilirim).
KDE bölümlerinden bazıları meta verileri için bu tür bir programdan bahsetti, ancak ayrıntıları hatırlamıyorum.
Bu şemaya dayanan daha karmaşık, içerik inceleme testleri yapmak, etrafına sarılmış benzer bir betikle mümkün olmalıdır find
.
Güncellenen gereksinimler üzerine düşünceler
- kullanıcı tarafından okunabilen herhangi bir dosya serbestçe etiketlenebilir - Evet, sorun olmamalı
- kullanıcı bir veya daha fazla etiketle eşleşen dosyaları arayabilir - Benzer şekilde
- dosyalar daha önce ilişkilendirilmiş etiketleri kaybetmeden hareket ettirilebilir - Yaşadıkları dizinler serbestçe hareket ettirilebilir, ancak dosya dizinden taşınırsa, başımız belaya girer. Etiketler formunu aldıysa
$TAG_$INODE_$FILE
ve sahip olduğumuz yolları belirli bir düğüm var bulmak için verimli bir yol , o zaman biz dosya sistemi dışına taşımak sadece etiketleri kaybederek yapabilirsiniz. Dosyaları kopyalamak biraz sorun çıkartabilir ve bu kesinlikle benim önerimden daha karmaşık.
- sistem kolayca yedeklenebilir - aslında zor değil.
- Masaüstü ortamına bağımlılık yok - Yok
- eğer herhangi bir gui varsa, bir cliback geri dönüşü olmalı - yaşadığımız yer orası !
Postscript Yanıtınıza (1) gösterdiğiniz
link (2) tarafından açıklanan "reverse-inode-lookup" dosyası, bazı ek altyapılar vermek için kullanılabilir. Bir etiketin dosya adında verilen her bir inode'un (varsa) etiketin işaret ettiği dosyanın inode'uyla eşleştiğini kontrol eden ters arama dosyasında bir servis çalıştırabiliriz. Eşleşme yoksa, gerekli cerrahi işlem yapılabilir (inode hala var mı? Nerede?) Ve geriye doğru arama dosyası mutasyona uğramış veya yenilenmiş ve etiket işaretleri güncellenmiştir.
Ben bir zor durumda bekliyoruz: peki etiketli dosya etiketlerin olması gerektiği yerde değilse, geriye doğru arama dosyası hala var diyor, ancak prodigal dosya arama dosyasının bulunduğu yerde değil, arama dosyasının dışına çıkıyor tarih, randevu, biriyle çıkmak? Bu olayı ele almanın birkaç yolu vardır, kesinlikle hiçbiri ideal değildir. Bundan başka, bütün bu görev Perl’in uygun olduğu bir şey gibi görünüyor ...