Introducción
El find
El comando le permite buscar una cadena específica de caracteres utilizando su interfaz de línea de comandos de Linux. Es una herramienta muy práctica ya que no se limita a los nombres de archivos. Puede usarlo para buscar una ubicación específica, agregar opciones para controlar el comportamiento de la búsqueda y usar comandos adicionales para indicarle cómo administrar los datos que encuentra.
Este tutorial le muestra cómo ubicar y administrar archivos en Linux con find
comando.
Requisitos previos
- Acceso a una ventana de terminal/línea de comando
- Una cuenta de usuario con sudo privilegios
Sintaxis básica del comando de búsqueda
La sintaxis básica del find
El comando usa el siguiente formato:
find <options> <location> <expression> <action> <name>
- Ubicación: Da instrucciones a
find
dónde empezar a buscar su término de búsqueda. - Expresión – Le dice a
find
qué categoría de información se supone que debe buscar. - Acción – La acción El atributo ejecuta un comando en los resultados de la búsqueda. Es un elemento opcional.
- Nombre – Representa la cadena de texto (u otros datos) que está buscando.
- Opciones: Este atributo no es un elemento obligatorio de
find
dominio. Se puede utilizar para controlar el comportamiento y optimizar el proceso de búsqueda.
Cómo utilizar el comando de búsqueda
El find
El comando enumera todas las instancias de la cadena de caracteres que incluyó en su búsqueda. El find
El comando también le permite definir parámetros de búsqueda, opciones y ubicaciones con un alto nivel de precisión.
Buscar archivos por ubicación
La búsqueda de archivos en función de su cadena de ubicación puede ser un comando simple como:
sudo find /home/user filename
Este comando busca el usuario cuenta en el inicio directorio. Si no está seguro de dónde desea buscar, puede ampliar la ubicación de búsqueda.
Por ejemplo, si tiene dos cuentas de usuario y no recuerda en cuál guardó un archivo, puede ingresar:
sudo find /home filename
El find
El comando busca todo lo que se encuentra debajo de /home directorio (incluidos todos los directorios de usuarios) para su término de búsqueda. En nuestro ejemplo, el término de búsqueda es nombre de archivo .
Usa un punto .
para buscar en el directorio en el que se encuentra actualmente:
sudo find .
Introduce una barra inclinada /
, y su sistema buscará en todo el disco duro:
sudo find /
El carácter de tilde ~
se utiliza para buscar en el directorio de inicio del usuario actual:
sudo find ~
Usar expresiones con el comando de búsqueda
Las expresiones aplican parámetros adicionales a find
proceso de búsqueda de comandos. La expresión más común es -name
. Esta expresión busca en la ubicación que ha especificado un archivo con el nombre que escribe en el nombre campo.
sudo find –name settings.txt
El sistema buscará en el directorio actual cualquier archivo con el nombre settings.txt.
El sistema solo muestra los nombres de archivo con una coincidencia exacta con sus términos de búsqueda. Esta limitación puede causar problemas si un nombre de archivo tiene letras mayúsculas, por ejemplo.
Para decirle a find
para ignorar mayúsculas/minúsculas, use –iname
expresión, de la siguiente manera:
sudo find /home –iname filename
El sistema busca en /home directorio y devolver cualquier cosa llamada nombre de archivo , Nombre de archivo , e incluso fIlEnAmE .
Usa el –type d
expresión para especificar si está buscando un archivo o un directorio:
sudo find . –type d –name Videos
Este comando buscaría en el directorio actual (con el punto) un directorio con el nombre “Videos .”
Por defecto, find
busca archivos, pero puede especificar archivos usando -type f
.
Mostrar todos los archivos que no incluyen el nombre buscado:
sudo find . -not filename
Busque archivos con un nivel de permiso determinado:
sudo find . -perm 0000
Devuelve la lista de todos los archivos que pertenecen a un nombre de usuario específico:
sudo find . -user username
Mostrar los últimos 00 archivos modificados:
sudo find . -mtime 00
El valor numérico define el número de archivos que muestra el sistema. Mostrar los últimos 00 archivos accedidos:
sudo find . -atime 00
Mostrar todos los archivos de más de 20 megabytes:
sudo find . -size +20M
El terminal presenta una lista de todos los archivos que coinciden con los criterios de tamaño.
Los comandos que hacen referencia al tamaño de los elementos buscados se pueden usar individualmente para mostrar todos los archivos que superan cierto tamaño, menores que cierto tamaño o dentro de un rango definido.
Buscar nombre o extensión
El name
El atributo define el objeto de su búsqueda. El find
la herramienta va a la ubicación especificada para cualquier cadena de caracteres que ingrese. Por lo general, el nombre del archivo que está buscando aparece al final del comando, después de la ubicación, las opciones y las expresiones.
Las letras y números estándar se ingresan como una cadena de caracteres al final del comando. Los caracteres especiales (un comodín, un punto, una barra oblicua, etc.) requieren el uso de comillas simples alrededor del nombre. Las comillas simples aseguran que el sistema interprete la solicitud correctamente.
Ingrese el siguiente comando para buscar archivos con una extensión específica, como .html o .php :
sudo find . –type f –name ‘*.html’
El sistema busca en el directorio actual archivos regulares (type –f
) que tienen una extensión de .php . En este caso, el asterisco (el * signo) se utiliza como comodín , lo que significa que puede representar cualquier número de caracteres de cualquier tipo.
Los comodines son útiles si solo recuerda parte del nombre de un archivo o está buscando archivos con una extensión particular.
Realizar acciones con el comando de búsqueda
Hemos visto cómo usar el find
Comando para mostrar los resultados de la búsqueda en la ventana de su terminal. Una acción El atributo puede mejorar esa funcionalidad y realizar una tarea particular una vez que se encuentra un archivo.
El siguiente comando busca el contenido real de los archivos (en lugar de solo los nombres de los archivos):
sudo find ~ –type f –exec grep “contents” ‘{}’ \; –print
- Le estamos pidiendo al sistema que busque un archivo (
-type f
) en el directorio de inicio de nuestro usuario (~
). - Le indicamos al sistema que tome medidas (
-exec
) ejecutandogrep
comando para buscar en el contenido de todos los archivos la palabra contenido . - El
{}
los corchetes indican los resultados de coincidencia defind
y están entre comillas simples para quegrep
el comando no los malinterpreta. - Estamos cerrando el
grep
comando con un punto y coma (;
), y estamos usando una barra invertida (\
) para que el sistema no malinterprete el punto y coma como una instrucción. - Finalmente, el
–print
opción le dice al sistema que muestre los resultados.
Copie y pegue este comando en la ventana de su terminal y sustituya su ruta de búsqueda por ~ carácter y su término de búsqueda para la palabra contenido.
Puede usar find –exec
combinación para cambiar los permisos de archivos rápidamente:
sudo find /path –name “filename.ext” –exec chmod 777 ‘{}’ \;
Este comando usa el –exec
comando para ejecutar chmod
para cambiar los permisos de archivo del archivo filename.ext para que todos puedan leerlo, escribirlo y ejecutarlo.
Localice y elimine archivos con el comando de búsqueda
Con el –delete
comando, puede buscar y eliminar rápidamente uno o varios archivos con un solo comando.
En este ejemplo, find
elimina todos los archivos que terminan con .html extensión.
sudo find . –name “*.html” –delete
Este comando buscará en el directorio actual (que se muestra en el símbolo del sistema) todos los archivos con .html y elimínelos. La imagen ilustra la simplicidad del proceso.
Este tipo de acción es útil para eliminar archivos de copia de seguridad antiguos si sustituyó “*.bak” en lugar de “*.bmp”.
Agregar opciones para encontrar el comando
Las opciones son funciones especiales insertadas antes de la ruta de búsqueda en un find
cadena de comandos. El -L
, -H
y -P
son elementos opcionales utilizados para controlar el manejo de enlaces simbólicos.
–P
Esta opción representa el comportamiento predeterminado. El sistema no sigue enlaces simbólicos.-H
El sistema no sigue enlaces simbólicos excepto mientras procesa este comando específico.-L
Sigue enlaces simbólicos. La información se toma del archivo al que dirige el enlace. No para el enlace en sí.
Las opciones pueden cambiar el nivel de optimización de búsqueda. Hay tres (3) niveles de optimización que definen cómo el programa de búsqueda organiza las búsquedas y la velocidad de ejecución de esa búsqueda.
- –O1 Este nivel de optimización se utiliza de forma predeterminada. Las búsquedas basadas en los nombres de los archivos se ejecutan primero.
- –O2 Las búsquedas basadas en el tipo se ejecutan justo después de las búsquedas basadas en nombres. Antes de que se realicen otras búsquedas.
- –O3 Las búsquedas se realizan para maximizar la velocidad. Independientemente de otros elementos de consulta.