En esta publicación veremos el linux find
comando y cómo buscar y encontrar archivos con diferentes atributos.
Comando de búsqueda de Linux
Linux find
command es una poderosa herramienta integrada que se puede usar para ubicar y administrar archivos y directorios en función de una amplia gama de criterios de búsqueda.
Por ejemplo, podemos buscar archivos por su nombre, extensión, tamaño, permisos, etc. También podemos usar el find
comando para buscar un texto en particular dentro de un archivo del cual no sabemos el nombre.
Veamos algunos usos del find
comando con ejemplos:
Buscando un archivo por nombre
Si sabe el nombre de un archivo pero no puede recordar el directorio en el que se encuentra, puede usar el siguiente comando desde el directorio raíz:
find . -name sales.csv
Salida de muestra:
./accounts/sales.csv
Buscando un archivo específico en un directorio
Si desea buscar archivos específicos en un directorio, podemos usar:
find ./test -name testCases*
Salida de muestra:
./test/testCases10.txt
./test/testCasesPassed.txt
./test/testCasesFailed.log
En el caso anterior, solo estamos buscando dentro del directorio "./test".
Buscar archivos por extensión
Para buscar y encontrar archivos por una cierta extensión usamos:
find . -name *.jpg
Salida de muestra:
./test/results/failedTests.jpg
./test/project.jpg
./home/profile_pic.jpg
./tmp/cute-cats.jpg
Buscar archivos o directorios con ciertos nombres
Para encontrar solo archivos, necesitamos usar el -f
opción:
find ./ -type f -name "results*"
Salida de muestra:
./test/results_latest.log
./test/results_archive.pdf
Para encontrar solo directorios, necesitamos usar el -d
opción:
find ./ -type d -name "results*"
Salida de muestra:
./test/results
Buscar archivos en múltiples directorios
Si desea buscar y enumerar todos los archivos con un nombre determinado en varios directorios, puede iniciar la búsqueda en la carpeta raíz o, si conoce los directorios, puede especificarlos.
Ejemplo:
find ./test ./logs -name failed*.* -type f
Salida de muestra:
./test/failed_tests.txt
./logs/failed_tests.log
Buscar archivos que contengan un texto determinado
A veces quieres encontrar un archivo y no sabes su nombre, pero sabes que tiene cierto texto dentro.
Puedes usar:
find ./test -type f -exec grep -l -i "login_scenarios" {} ;
Aquí, el -i
se usa para ignorar mayúsculas y minúsculas, por lo que se encontrarán Login_Scenarios y login_scenarios.
Buscar archivos por tamaño
Incluso podemos encontrar archivos de diferentes tamaños. Las opciones de tamaño son:
c
bytesk
kilobytesM
MegabytesG
Gigabytes
Por ejemplo, para encontrar archivos en un tamaño exacto, usamos:
find / -size 10M
Y para encontrar archivos que superen cierto tamaño, usamos:
find ./test -size +2M
Lo anterior encontrará todos los archivos que superen los 2 MB en la carpeta ./test.
Buscar y eliminar archivos específicos
Para encontrar y borrar archivos específicos usamos:
find . -type f -name "temp*" -exec rm {} ;
Conclusión
En este artículo, aprendió cómo usar el comando de búsqueda de Linux para buscar archivos según el nombre, la extensión, el tamaño y el tipo.