Connect with us

Linux

plocate è una localizzazione molto più veloce (sostituzione drop-in per mlocate)


plocate trova file dalla riga di comando

locate è uno strumento Unix utilizzato per trovare file per nome nel filesystem, che utilizza un database predefinito di file generati (creato utilizzando updatedb). Usando locate è più veloce di find, ma è necessario aggiornare il database per trovare i file appena aggiunti.

locate è stato creato nel 1982, con le versioni BSD e GNU Findutils derivanti dall’implementazione originale.

plocate è più recente (la prima versione stabile è stata meno di un anno fa), molto più veloce locate. Si basa su elenchi di pubblicazione, fornendo ricerche molto più veloci su un indice molto più piccolo.

Lo strumento da riga di comando è un sostituto rapido di mlocate (Merging Locate; un database ad accesso limitato, che mostra solo i nomi di file accessibili all’utente) in quasi tutti gli aspetti, incluso il riutilizzo del mlocate database (plocate crea il proprio indice usando plocate-build che legge il database creato da updatedb), e è veloce sia su SSD che su HDD.

plocate funziona creando un indice invertito sui trigrammi (combinazioni di tre byte) nelle stringhe di ricerca, che gli consente di restringere rapidamente l’insieme dei candidati a un elenco molto piccolo, invece di scansionare linearmente ogni voce. Esegue quasi tutto l’I/O in modo asincrono utilizzando io_uring, se disponibile (Linux 5.1+), che riduce l’impatto della latenza di ricerca sui sistemi senza SSD.

Potrebbe interessarti anche: Come trovare i file modificati negli ultimi N giorni o minuti usando find

Per mostrare quanto è veloce plocate rispetto a mlocate, lo sviluppatore plocate mostra questo benchmark sulla homepage dello strumento in cui plocate è in grado di trovare 2 file su 27 milioni in pochi millisecondi:

plocate le prestazioni

Inoltre, come mlocate, plocate mostra tutti i file che corrispondono alla query di ricerca solo se sono visibili all’utente che esegue il comando, ignorando tutti i file con restrizioni.

Come installare e utilizzare plocate

plocate è disponibile nei repository ufficiali di alcune distribuzioni Linux, tra cui Arch Linux / Manjaro e Debian (Bullseye e più recenti, così come i backport di Buster) / Ubuntu (21.04 e successivi). Puoi installarlo usando:

sudo pacman -S plocate
  • Debian (Bullseye e versioni successive, nonché i backport di Buster) / Ubuntu (21.04 e versioni successive):
plocate find files command linesudo apt install plocate

Per costruirlo su altre distribuzioni Linux avrai bisogno di un compilatore C++ 17, Zstd (intestazioni di sviluppo) e Meson. Nel mio test su Fedora ho dovuto anche installare libatomic per ottenere il programma da costruire. Facoltativamente, vorrai anche liburing e un kernel che supporta io_uring (Linux 5.1 o successivo) per le migliori prestazioni, soprattutto se non si utilizza un SSD. Un’altra dipendenza facoltativa è systemd, che può essere utilizzata per eseguire il timer di aggiornamento del database plocate integrato.

Per installare le dipendenze di compilazione di plocate su Fedora (incluso l’opzionale liburing), utilizzo:

sudo dnf install libzstd-devel liburing-devel libatomic gcc-c++ meson

O per costruirlo su ad esempio Ubuntu 20.04 (nota che Ubuntu 20.04 non ha liburing nei suoi repository, quindi plocate non utilizzerà tutta la sua potenza se stai usando un normale HDD), avrai bisogno di queste dipendenze:

sudo apt install libzstd-dev meson build-essential

Una volta installate le dipendenze di build, scarica ed estrai plocate e usa il terminale per navigare nella sua cartella. Ora puoi procedere alla compilazione e all’installazione di plocate sul tuo sistema:

meson obj

cd obj

ninja

sudo groupadd --system plocate

sudo ninja install

sudo systemctl enable plocate-updatedb.timer

Ora puoi iniziare a usare plocate. Prima di utilizzarlo per la prima volta, crea il suo database (indice dei file) utilizzando il seguente comando:

sudo updatedb

La prima volta che corri updatedb, esegue la scansione dell’intero filesystem e potrebbe volerci un po’ di tempo. Le esecuzioni successive dovrebbero essere molto più veloci.

Ora usa plocate come useresti tu locate. Cerca un file usando plocate:

locate <MY_FILE.EXT>

Sostituzione MY_FILE.EXT con il file che vuoi trovare.

Per ulteriori opzioni come ignorare maiuscole/minuscole, ricerca regex, ecc., vedere la guida dello strumento e la pagina man.

Potrebbe interessarti: Come eliminare i file più vecchi o più recenti di N giorni utilizzando find (con esempi aggiuntivi)


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare.

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi