Sadece belirli dizinleri indekslemek için mlocate'i nasıl elde ederim?


23

Mlocate'i Ubuntu sunucumda kullanmak istiyorum , ancak yalnızca belirli dizinleri indekslemek için (ör. /homeVe /dataaltındaki her şey değil /). Ancak mlocate'in standart konfigürasyonu tam tersi şekilde çalışır; kaldırmak istediğiniz yolları (ile PRUNE_PATHS) belirtirsiniz .

Bunu başarmanın kolay bir yolu veya istediğimi yapacak benzer bir yardımcı program var mı? : (not bu gibi bir dizin sürdürmesi gerektiğini mlocatebu nedenle, findteşekkür örnek için, kabul edilebilir değildir).

Yanıtlar:


16

-U seçeneğini kullanabilirsiniz (--database-root PATH)

updatedb -l 0 -U /home/user/music -o /home/user/databasefile

-o çıktı dosyasına yazar.

-l 0 okumanızı sağlar, aksi takdirde sadece konumlandırılabilir.

O zaman şöyle kullanabilirsiniz:

locate -d /home/user/databasefile Dylan

-d veri tabanını ayarlar

Mlocate'ı birden fazla kök dizinde kullanmak için, sadece iki veritabanı dosyası oluşturun ve iki veri tabanının aşağıdaki gibi seçenekleriyle bulun:

locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring

Özetlemek ve soruyu daha spesifik cevaplamak için:

updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan

Kısmi bir cevap olduğu için olumlu. Ancak, yalnızca bir yolu beyaz listeye almanıza izin verir. Benim sorum özellikle birden fazla yolu nasıl beyaz listeye alacağıyla ilgiliydi.
Andrew Ferrier

1
Yanıtı geliştirdim ve daha kolay kullanım için bir takma ad oluşturmanızı öneriyorum
Janghou

iyi cevap! Açıklama için teşekkürler, iki veritabanında paralel olarak arama yapabileceğinizi bilmiyordum. Daha iyi bir cevap gelmediği sürece bunu kabul edilen olarak işaretleyeceğim!
Andrew Ferrier

updatedb -l 0 -U /home/user/musicözyinelemeli? Benim durumumda görünmüyor
Gaia

22

Dosyayı düzenle /etc/updatedb.conf

PRUNEPATHSAramak istemediğiniz dizinleri ayarlayın

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS: Güncellenme zaman önce taranmaması gereken dizin adlarının boşlukla ayrılmış listesi. Her yol adı, tam olarak dizinin konumlandırılarak bildirileceği biçimde olmalıdır. Varsayılan olarak, hiçbir yol atlanmaz.

Yukarıdaki yapılandırma bilgilerinin tümünün komut satırı seçenekleri aracılığıyla yardımcı programa değiştirilebilir veya güncellenebileceğini unutmayın updatedb.


Hayır, istediğim şeyin tam tersi bu. Bu, dizinler dışındaki her şeyi dizine ekleyecektir.
Andrew Ferrier

PRUNEPATHS'ı dizinleriniz dışındaki her şeyle ayarlayabilirsiniz. Bu şekilde, yalnızca dizinlerinizi tarar.
LnxSlck

Tamam, açıklama için teşekkürler. Bu biraz pratik değil, çünkü dizinlerin yanına alt dizinler eklerken indekslemek istiyorum, onları PRUNEPATHS'ye eklemeyi hatırlamak zorunda kalacağım. Ancak işe yarayacaktı. Önerin için teşekkürler.
Andrew Ferrier

Evet biliyorum ama bunu yapmak için mlocate hakkında fazla bilgi bulamıyorum. Bulmak gibi bir şey kullanamaz mısın?
LnxSlck

Hayır, çok fazla veriye sahibim, bu yüzden dizine eklenmesi önemlidir. Söz konusu olan açıklığa kavuştum.
Andrew Ferrier

1

Deneyebileceğin başka bir şey buldum:

  1. HızlıArama - Benim Searchtool farklı bir yol kullanmak Yani": o zaman o çıkışına arama yapar, arama klasörün liste içeriğine 'ls' komutu kullanan Böylece arama hızı o yapmak zorunda ilk kez hariç (çok hızlı. 'çıkış'.

İndeksleme hakkında pek emin değil.

  1. Tool tracker-gui kullanın
  2. Oldukça topal çözüm sudo bulmak "arama dizinlerini buraya yerleştir"> files.list grep 'dosyaadı' files.list

Birden fazla cevap eklememeye çalışın. Gerekirse, mevcut cevabı düzenleyin ve daha fazla bilgi ekleyin. Teşekkürler.
jokerdino

Evet, bunu yapacağım
LnxSlck
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.