El comando Buscar es uno de los comandos más útiles e importantes utilizados en Linux. Está disponible e instalado por defecto en casi todas las versiones de Linux. Todo en Linux está en forma de archivos, y deberíamos poder ubicar un archivo cuando sea necesario.
Con el uso del comando de búsqueda, podemos buscar los archivos que se necesitan en función de una serie de criterios de búsqueda, podemos usar solo o combinar una serie de criterios y luego podemos realizar acciones en el resultado obtenido. En este tutorial, vamos a discutir el comando de búsqueda con la ayuda de algunos ejemplos,
1) Lista todos los archivos en el directorio actual y sus subdirectorios
Para enumerar todos los archivos en el directorio actual y los subdirectorios, podemos usar
$ find
Alternativamente, también podemos usar 'buscar. ', que también proporcionará el mismo resultado que el anterior.
2) Encuentra todos los archivos o directorios de tu directorio de trabajo actual
Para buscar solo directorios, podemos usar
$ find . -type d
Para buscar solo en todos los archivos y no en los directorios, utilice
$ find . -type f
3) Lista todos los archivos de un directorio específico
Para encontrar todos los archivos en un directorio en particular, podemos usar
$ find /root
Este comando buscará todos los archivos en el directorio /root.
4) Encuentra un archivo con nombre en un directorio
Para buscar un archivo por su nombre en un directorio en particular, el comando es
$ find /root -name "linuxtechi.txt"
Esto buscará el archivo linuxtechi.txt en la carpeta /root. También podemos buscar todos los archivos con extensión .txt,
$ find /root -name "*.txt"
5) Encuentra un archivo en múltiples directorios
Para encontrar un archivo por su nombre en varios directorios, podemos usar
$ find /root /etc -name "linuxtechi.txt"
Con este comando, podemos buscar el archivo linuxtechi.txt en los directorios /root &/etc.
6) Encuentra un archivo con nombre ignorando mayúsculas y minúsculas
Para buscar un archivo con su nombre independientemente del caso, es decir, si está en mayúsculas o minúsculas, podemos usar '-iname ‘opción en el comando de búsqueda
$ find /root -iname "Linuxtechi.txt"
El resultado del comando proporcionará todos los archivos con el nombre linuxtechi.txt, ya sea en minúsculas, mayúsculas o en una combinación de mayúsculas y minúsculas.
7) Encuentra todos los tipos de archivos que no sean el tipo mencionado
Supongamos que queremos encontrar todos los archivos que no son del tipo mencionado, para lograr esto podemos usar,
$ find /root -not -name "*.txt"
8) Encuentra archivos con múltiples condiciones
También podemos combinar más de una condición para buscar los archivos, supongamos que queremos buscar archivos de extensiones '.txt' y '.html'
$ find . -regex ".*\.\(txt\|html\)$"
9) Encuentra archivos usando la condición OR
También podemos combinar múltiples criterios de búsqueda y luego buscar los archivos en función del cumplimiento de cualquiera de las condiciones usando el operador OR,
$ find -name "*.txt" -o -name "linuxtechi*"
10) Encuentra todos los archivos según sus permisos
Para buscar archivos según los permisos, use -perm opción en el comando de búsqueda
$ find /root -type f -perm 0777
11) Encuentra todos los archivos ocultos
Para buscar todos los archivos ocultos en un directorio, el comando es
$ find ~ -type f name ".*"
12) Encuentra todos los archivos con SGID
Para localizar todos los archivos con bits SGID, podemos usar
$ find . -perm /g=s
13) Encuentra todos los archivos con SUID
Para localizar todos los archivos con bits SUID, usaremos
$ find . -perm /u=s
14) Encuentra todos los archivos ejecutables
Para buscar solo los archivos que son ejecutables, el comando es
$ find . -perm /a=x
15) Encuentra todos los archivos de solo lectura
También podemos buscar solo archivos de solo lectura usando el comando de búsqueda,
$ find /root -perm /u=r
16) Encuentra todos los archivos propiedad de un usuario
Para ubicar todos los archivos que son propiedad de un usuario en particular, por ejemplo linuxtechi, usaremos el siguiente comando,
$ find . -user linuxtechi
17) Encuentra todos los archivos propiedad de un grupo
Para ubicar todos los archivos que son propiedad de un grupo en particular, use
$ find . -group apache
18) Encuentra archivos de un tamaño particular
Si queremos buscar un archivo del que sabemos el tamaño exacto, podemos usar '-size ‘opción con el comando de búsqueda para localizar el archivo
$ find / -size -2M
19) Encuentra todos los archivos de rango de tamaño
Si buscamos un archivo del que no sabemos el tamaño real pero conocemos un rango de tamaño o simplemente queremos ubicar todos los archivos dentro de un rango de tamaño, entonces también podemos ubicar el archivo usando ese criterio
$ find / -size +2M -size -5M
También podemos usar el comando de búsqueda para ubicar todos los archivos cuyo tamaño es mayor a 50 MB
$ find / -size +50M
20) Encuentra archivos que fueron modificados hace N días
Por ejemplo, queremos localizar todos los archivos que han sido modificados hace 8 días. Podemos lograr eso usando '-mtime ‘opción en el comando de búsqueda
$ find / -mtime 8
21) Encuentra archivos a los que se accedió hace N días
De manera similar al ejemplo anterior, también podemos ubicar archivos a los que se accedió hace 8 días usando '-atime',
$ find / -atime 8
22) Encuentra todos los archivos o directorios vacíos
Para ubicar todos los archivos vacíos en el sistema, usaremos el comando debajo
$ find / -type f -empty
Del mismo modo, para localizar todos los directorios vacíos
$ find ~/ -type d -empty
23) Encuentra archivos más grandes y más pequeños
Para enumerar el archivo más grande o más pequeño, combinaremos 'ordenar ‘comando con el comando de búsqueda y si además queremos enumerar los tres primeros de esos archivos más grandes, combinaremos ‘head ‘ comando.
Para enumerar los tres archivos principales en el directorio actual, el comando es
$ find . -type f -exec ls -s {} \; | sort -n -r | head -3
De manera similar, podemos encontrar los archivos más pequeños en el directorio actual,
$ find . -type f -exec ls -s {} \; | sort -n | head -3
24) Encuentra todos los archivos con permisos específicos y cámbialos a 644 (u otros permisos)
Con el comando de búsqueda, también podemos lograr algunas funcionalidades avanzadas. Por ejemplo, podemos enumerar todos los archivos que tienen el permiso 644 y luego cambiar esos permisos a 777. Para hacer esto, ejecute
$ find / -type f -perm 644 -print -exec chmod 777 {} \;
25) Encuentre todos los archivos que coincidan con un criterio y elimínelos
Es posible que debamos localizar y eliminar archivos que coincidan con un criterio. Para hacer esto con el comando de búsqueda, ejecute
$ find / -type f -name 'linuxtechi.*' -exec rm -f {} \;
Estos fueron algunos ejemplos simples que demuestran la funcionalidad del comando de búsqueda y se puede usar para realizar tareas de búsqueda/ubicación tediosas y repetitivas más fácilmente.
Lea también :16 ejemplos útiles de comandos 'cp' para principiantes de Linux