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.