Estoy tratando de localizar todas las copias de example.filename
en mi servidor FreeBSD. ¿Cuál es la forma mejor / más fácil / más eficiente de hacer esto?
Estoy tratando de localizar todas las copias de example.filename
en mi servidor FreeBSD. ¿Cuál es la forma mejor / más fácil / más eficiente de hacer esto?
Respuestas:
find / -name example.filename
locate filename
Mucho más rápido que find
, si está ejecutando el servicio de localización, y solo encuentra archivos que existían en el momento en que se updatedb
ejecutó por última vez (generalmente la noche antes del control de un trabajo cron).
Usted puede ejecutar updatedb
con la mano, pero que es aún más lento que el find
Cletus sugiere , y requiere de la raíz. A veces actualizo la base de datos a mano después de instalar un montón de cosas nuevas.
find /
o en un árbol grande más de una vez a la semana, locate
probablemente valga la pena ejecutar el servicio, porque locate(1)
es mucho más rápido.
sudo periodic weekly
actualiza la locate
base de datos. Ejecútelo después de cualquier instalación o descarga que pueda contener los archivos que desee.
Si tienes instalado localizar (también conocido como slocate), entonces
locate example.filename
localizar ejecuta un trabajo cron todas las noches que reindexa todos los archivos en su máquina. No siempre está actualizado por ese motivo.
A veces desea buscar archivos en un nivel de directorio específico. En este caso, puede ser conveniente utilizar comodines de shell:
ls /data/*/example.filename
Obviamente, esto solo funciona si tiene una estructura de directorio rígida.
locate
Como otros mencionaron, locate
es la forma más rápida de encontrar un archivo. Este comando utiliza un índice precompilado de los nombres de archivo y carpeta. Se busca en esta base de datos de nombres, en lugar de rastrear su sistema de archivos.
locate example.filename
Para ser insensible a mayúsculas y minúsculas, agregue -i
.
locate -i eXAmPle.FileName
locate
base de datosLa base de datos utilizada por locate
debe estar actualizada. Después de realizar una instalación o descarga que puede contener el archivo deseado, debe actualizar la locate
base de datos.
La locate
base de datos eventualmente será actualizada automáticamente por su sistema FreeBSD. Hay un conjunto semanal de tareas que incluye esta tarea. Estas tareas se enumeran en el /etc/periodic/weekly/310.locate
guión.
La forma más fácil y segura de forzar la actualización temprana de la locate
base de datos es forzar el conjunto semanal de tareas para que se haga ahora.
sudo periodic weekly
O incluso podría obligar a realizar todas las tareas habituales. Es posible que desee hacer esto inmediatamente después de configurar un nuevo sistema FreeBSD.
sudo periodic daily weekly monthly
Si utiliza otras vías para actualizar la locate
base de datos, es posible que reciba un mensaje sobre la inseguridad, revelando los nombres de todos los archivos de su sistema a cualquier usuario en el sistema FreeBSD. Usar la periodic
ruta evita este problema.
Si tiene la base de datos de localización actualizada, simplemente:
locate example.filename
A veces hago
find . | grep example.filename
probablemente enormemente ineficiente sin embargo.