Si quiero usar el locatecomando en una máquina Linux, generalmente ejecuto sudo updatedbprimero para actualizar la base de datos. Puedo ejecutar el locatecomando en OS X 10.5 pero no puedo encontrarlo updatedb. ¿Cuál es la actualización actualizada correspondiente para Mac?
234

locatepor primera vez en un cuadro de OS X, le indica que ejecutesudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist.locate, puede que le resulte más conveniente usar la interfaz de línea de comando para Spotlightmdfind, ya que la base de datos de Spotlight está casi siempre actualizada y ofrece mucha más funcionalidad que localizar.man mdfindRespuestas:
Está
locate.updatedben Mac.Para obtener más información, consulte la página del comando man localizar.updatedb .
fuente
manpágina también afirma: Por lo general, el trabajo /System/Library/LaunchDaemons/com.apple.locate.plist lo ejecuta una vez a la semana. (Yman locatele dice a uno sobre ese script: /usr/libexec/locate.updatedb Script para actualizar la base de datos de localización )sudo ionice -c3 updatedbque me diceupdatedbque comparta bien el controlador de E / S (io nice), pero no creo que este comando esté disponible en Mac. También extraño tener la-rbandera de expresiones regulares que se pueden utilizar con la GNU localizar, aunque no estoy seguro de que quiera utilizar e instalar el homebrew GNU locate mencionado por @GrogsThe 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 databasePuede hacer
sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedbque elupdatedbcomando esté disponible.fuente
Personalmente, acabo de instalar findutils (use MacPorts o Homebrew).
Entonces tienes GNU localizar y actualizadob.
updatedb no funcionará sin sudo.
Sin embargo, personalmente prefiero tener una ubicación por usuariob; si sudo otros usuarios sabrán los nombres / ubicaciones de todos sus archivos.
Tengo un trabajo cron para ejecutar:
updatedb --localpaths='/Users/grogs' --output='/Users/grogs/tmp/locatedb'Y en mi .zshrc .bashrc / .bashprofile:
export LOCATE_PATH="~/tmp/locatedb"fuente
gupdatedbcomando, noupdatedbuno. Lamentablemente, este comando me dio un error descrito aquí (donde se hace referencia a su respuesta SO). En última instancia He aliasupdatedbqueLC_ALL=’C’ sudo updatedbcomo una solución, pero no sé si esto es una solución a largo plazo./opt/local/libexec/gnubinal comienzo de su ruta, si desea quecoreutilsefindutilsinstalado pormacportsesté disponible con sus nombres originales (y no susgversiones prefijadas).Si ejecuta localizar sin actualizar primero la base de datos, tiene la oportunidad de ver la forma recomendada del sistema operativo por su salida.
fuente