it-swarm-es.com

Cómo encontrar un archivo en FreeBSD

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?

14
Ian
find / -name example.filename
18
cletus
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 ese momento updatedb última ejecución (generalmente la noche antes bajo el control de un trabajo cron).

Usted can ejecutar updatedb a mano, pero eso es aún más lento que el find cletus sugiere , y requiere root. A veces actualizo la base de datos a mano después de instalar un montón de cosas nuevas.

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.

2
Paul Tomblin

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.

2
Jon Ericson

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 a través de su sistema de archivos.

locate example.filename 

Para no distinguir mayúsculas y minúsculas, agregue -i.

locate -i eXAmPle.FileName

Actualizar locate base de datos

La 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 base de datos locate.

La base de datos locate será eventualmente 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 script.

La forma más fácil y segura de forzar la actualización temprana de la base de datos locate 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 usa otras vías para actualizar la base de datos locate, 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 ruta periodic evita este problema.

1
Basil Bourque

Si tiene la base de datos de localización actualizada, simplemente:

locate example.filename
0
Sophie Alpert

A veces hago


  find . | grep example.filename

probablemente enormemente ineficiente sin embargo.

0
kgrad