locate non sta trovando un file zip esistente

1

Il daemon com.apple.locate.plist è in esecuzione e ho aggiornato il database utilizzando sudo /usr/libexec/locate.update , ma il comando locate non sta ancora trovando un .zip denominato OldPhoneCamera.zip in /Users/CAJ/Pictures/ .

Uso questo comando locate -i OldPhoneCamera e non restituisce nulla. La directory non è nascosta e il file è rimasto nel sistema per 6 mesi. Il database è stato aggiornato più volte da allora.

Posso usare find con successo, find / -name OldPhone* , ma preferisco usare locate perché find richiede molto tempo. Perché il localizzatore non trova OldPhoneCamera.zip e può essere riparato?

    
posta CAJ 31.07.2018 - 20:01
fonte

2 risposte

1

Lo script di shell /usr/libexec/locate.updatedb viene eseguito dall'utente non privilegiato nobody . Ecco lo snip:

if [ "$(id -u)" = "0" ]; then
rc=0
export FCODES='sudo -u nobody mktemp -t updatedb'
chown nobody $FCODES
tmpdb='su -fm nobody -c "$0"' || rc=1
if [ $rc = 0 ]; then
    install -m 0444 -o nobody -g wheel $FCODES /var/db/locate.database
fi
rm $FCODES
exit $rc
fi

Lo script toccherà a malapena qualsiasi cosa all'interno della cartella home.

    
risposta data 31.07.2018 - 20:16
fonte
0

Il database utilizzato da locate viene aggiornato solo una volta a settimana, il che non è ideale in termini di ricezione di risultati accurati.

Soprattutto, come si dice nella pagina man, il comportamento di locate è intenzionale ; l'intento è di ridurre al minimo il numero di entità con accesso in lettura ai tuoi file personali:

The locate database is typically built by user "nobody" and the locate.updatedb(8) utility skips directories which are not readable for user "nobody", group "nobody", or world. For example, if your HOME directory is not world-readable, none of your files are in the database.

Quando esegui una ricerca da riga di comando casuale su un Mac, la solita procedura consiste nell'utilizzare locate per i file di proprietà del sistema e la procedura GUI "Spotlight.app" per i tuoi file. (Spotlight è perfettamente in grado di eseguire anche ricerche complesse, ed è veloce.) È facilmente lanciato dal Finder tenendo premuto il tasto comando e toccando la barra spaziatrice.

    
risposta data 01.08.2018 - 01:49
fonte

Leggi altre domande sui tag