GNU/Linux >> Tutoriales Linux >  >> Linux

El comando find Directory de Linux:Explicación

Es posible que necesite encontrar un directorio en su sistema operativo basado en Linux y esté sufriendo porque no conoce el comando real para encontrar la ubicación de los diferentes archivos presentes en su sistema operativo basado en Linux. El comando de búsqueda de directorio de Linux se usa para este propósito.

El comando Buscar se utiliza para buscar la ubicación de archivos tanto en sistemas basados ​​en Unix como en Linux. El comando de búsqueda está incluido en el paquete "findutils" y está presente en todas las distribuciones de Linux. Puede buscar directorios y archivos aplicando numerosas condiciones. La acción se tomará de acuerdo con las condiciones aplicadas que afectarán el resultado.

Introducción al comando de búsqueda de directorio de Linux

La forma más simple del comando de búsqueda viene dada por:

find [paths] [expression] [actions]

Las otras formas del comando de búsqueda se dan cuando se ejecuta el comando de búsqueda, busca directorios y archivos en cada ruta. Una vez que encuentra un directorio en la ruta proporcionada, comienza a buscar otros archivos y directorios en esa misma ruta. Este proceso no se detiene hasta que haya buscado todos los archivos en la ruta indicada.

find /where/to/look/up criteria action
find /dir/path/look/up criteria action
find /dir/path/look/up -name "name-of-dir"
find /dir/path/look/up -name "pattern"
find /dir/path/look/up -name "name-of-dir" -print
find /dir/path/look/up -name "name-of-dir"
find / -name "name-of-dir"
find / -type d -name "name-of-dir"
find / -type d -name "name-of-dir" 2>/dev/null

Buscar en todos los directorios y archivos

Si desea la lista de todos los archivos y directorios de su ruta especificada, puede hacerlo especificando la ruta. Por ejemplo, si desea una lista de todos los archivos de la ruta usr/share, puede usar el siguiente comando:

find /usr/share

Si desea enumerar archivos de más de un directorio a la vez, puede usar el siguiente comando:Una vez que ejecute este comando, aparecerá una lista de todos los directorios y archivos en la consola desde su ruta especificada. La lista puede ser muy larga según el contenido almacenado.

find /bin /usr/li

Supongamos que desea una lista de contenido presente en su trabajo actual directamente. Se puede hacer rápidamente poniendo un punto (.) después del comando de búsqueda, así:

find .

Si de alguna manera olvida poner el punto después del comando de búsqueda, los datos del directorio de trabajo actual se mostrarán solo ejecutando el comando de búsqueda.

find

Filtrar elementos con sus nombres

Muchas veces, existe la necesidad de filtrar diferentes elementos con la ayuda de sus nombres. El comando de búsqueda de directorio de Linux también puede ayudarlo a hacerlo.

Supongamos que desea buscar un archivo llamado NUEVO.txt que se encuentra dentro del directorio /Desktop, luego puede usar el interruptor "-name" como se muestra a continuación:

find Desktop -name NEW.txt

Utilizar el interruptor "-name" es más sensible a mayúsculas y minúsculas. Para usar un comando que no distingue entre mayúsculas y minúsculas, puede usar "-iname" en lugar de "-name"

find Desktop -iname new.txt

Ambos modificadores admiten "comodines" que se utilizan como marcadores de posición para caracteres desconocidos. El comodín "*" se utiliza para mostrar cualquier número de caracteres desconocidos, mientras que "?" está acostumbrado a un solo carácter desconocido.

Para usar estos comodines, debe poner el parámetro del comando "nombre / nombre" entre comillas simples o dobles.

Suponga que desea buscar todos los archivos en el directorio /Desktop que incluyen .txt al final. Entonces se puede hacer con el siguiente comando de directorio de búsqueda de Linux:

find Desktop -name '*.txt'

Ahora, si desea buscar los archivos que incluyen tres caracteres en su nombre, puede usar "?" comodín entre comillas.

find Desktop -name '???'

Especificar la búsqueda de archivos o directorios

Al usar Linux para encontrar el comando de directorio, también puede especificar el tipo de búsqueda. Puede usar el interruptor "-type" para especificar que está buscando solo archivos o directorios. Hay tres parámetros del interruptor "-type" en total:

  • f - archivos
  • d - directorios
  • l - enlaces simbólicos

Si desea encontrar todos los directorios presentes en la ruta /usr, puede usar:

find /usr -type d

Hay otra forma de usar los interruptores combinándolos. Por ejemplo, para buscar ".txt" con el interruptor -name y al mismo tiempo especificar el tipo de archivo con el interruptor "-type":

find /usr -type f -name '*.txt'

Igual que en el ejemplo anterior, también puede buscar directorios usando el parámetro "d" en la ruta /usr. Para encontrar directorios con nombre "cherrytree":

find /usr -type d -name 'cherrytree'

Interruptor vacío para encontrar archivos vacíos

Puede usar el interruptor "-vacío" dentro de Linux dentro del comando de directorio de búsqueda de Linux. Este interruptor se usa para encontrar archivos vacíos o directorios vacíos presentes en su ruta especificada. Para encontrar archivos vacíos en el directorio /usr, puede aplicar el siguiente comando con el interruptor "-type":

find /usr -type d -empty

Negación de coincidencias en comandos de búsqueda

Si desea excluir algo de la búsqueda, puede usar el comando de búsqueda para anular la condición.

Suponga que desea buscar los archivos sin la extensión ". Py" en el directorio /usr. Puede incluir un signo de exclamación (!) con el interruptor "-name", como se muestra a continuación:

find /usr -type f ! -name '*.py'

El signo de exclamación también se puede utilizar para oponerse a cualquier otro interruptor. Por ejemplo, en el caso de un interruptor "-vacío", puede usar "!" para buscar directorios no vacíos en lugar de directorios vacíos.

find /usr -type f ! -empty

Buscar archivos según su propiedad

Hay una opción para buscar archivos en función de la propiedad del usuario. Puede usar el interruptor "-usuario" para buscar los archivos relacionados con un usuario en particular. Si desea buscar los archivos relacionados con un usuario llamado "raíz", puede aplicar el siguiente comando para obtener una lista de todos sus archivos.

find / -type f -user root

En lugar de nombre de usuario, también puede usar ID de usuario para verificar todos los archivos que pertenecen a ese usuario. Si no conoce su identificación de usuario, puede encontrarla usando el siguiente comando.

id -u <username>

También puede buscar por grupo con la ayuda del nombre del grupo o ID de grupo. Para encontrar su ID de grupo, puede usar el siguiente comando.

id -g <username>

Buscar archivos según su tamaño

El comando de búsqueda de directorio de Linux también le permite buscar archivos en función de su tamaño. Para este propósito, se usa el interruptor "-size", y se aplica solo a los archivos, no a los directorios.

Puede especificar el tamaño del archivo poniendo un número seguido de una letra. Estas letras se usan con el interruptor "-size",

  • c-bytes
  • k - kilobytes
  • m - megabytes
  • g - gigabytes

También puede aplicar una condición menor o mayor que con la ayuda de los signos "+" y "-".

Aquí hay un ejemplo para encontrar todos los archivos del sistema con un tamaño de 20 KB:

find / -size 20k

Si desea buscar archivos de más de 1 GB, puede utilizar:

find / -size +1G

En caso de que desee archivos con tamaños inferiores a 20 MB, puede utilizar la siguiente instrucción:

find / -size -20M

Realización de acciones con el comando de búsqueda de directorio

Los comandos que usamos hasta ahora son solo para mostrar los resultados en la terminal, pero hay algunas acciones que podemos realizar con la ayuda del comando de búsqueda. También podemos realizar acciones necesarias como copiar o eliminar un archivo.

Para borrar archivos

Puede eliminar fácilmente cualquier archivo o directorio simplemente usando "-delete" con su comando de búsqueda. Suponga que desea eliminar todos los archivos vacíos presentes en el directorio /Desktop, entonces puede usar el siguiente comando:

find Desktop -type f -empty -delete

Ejecución de comandos

El interruptor "-exec" se usa para ejecutar un comando personalizado. Puede hacer muchas cosas con la ayuda del interruptor "-exec".

Para copiar todos los archivos a la vez, puede usar:

find ~ -type f -name '*.mp3' -exec cp {} ';'

En el comando anterior, usamos ";" para mostrar el final del comando que está entre comillas. Los "{}" (corchetes) que ve se utilizan para definir la ubicación.

Ahora, cuando se detecta un archivo coincidente según lo especificado, se activa el comando cp para mover los archivos de la ubicación.

Conclusión

Puede hacer mucho más con la ayuda del comando de búsqueda. Es útil para aquellos que están acostumbrados a Linux CLI (interfaz de línea de comandos). El comando de búsqueda viene repleto de muchas posibilidades que lo ayudarán a realizar diferentes acciones y hacer mucho más. También hay tutoriales sobre los comandos de mover y copiar de Linux, échales un vistazo.


Linux
  1. Domina el comando ls de Linux

  2. Encuentre el tiempo de ejecución de un comando o proceso en Linux

  3. Cómo usar el comando find de Linux para buscar archivos

  4. El comando de localización en Linux

  5. Comando de mover directorio de Linux

Cómo encontrar el tamaño total de un directorio en Linux

Cómo encontrar archivos con el comando fd en Linux

El comando del temporizador en Linux

Comando Arping en Linux explicado

15 ejemplos súper útiles del comando Buscar en Linux

El comando CP de Linux:explicado y simplificado