Su sistema Linux consta de miles de archivos. Buscarlos manualmente es una molestia. En tales casos, su sistema Linux ofrece dos comandos distintos para encontrar un archivo en particular: el comando localizar y el comando buscar. El comando Find, en particular, es una gran herramienta cuando desea especificar los atributos del archivo y ajustar su búsqueda de un archivo. Usando el comando Find, incluso puede actuar en el archivo que encuentra usando el argumento EXEC. En este tutorial, discutiremos el comando Find -exec.
El comando encontrar
El comando Find es más lento que el comando localizar, pero busca todo el sistema de archivos en vivo! Además, usando el comando Find, puede ajustar su búsqueda utilizando una gran cantidad de atributos. Lo que esto significa en inglés es que puede ajustar su búsqueda utilizando casi cualquier parámetro que desee. Por ejemplo, puede buscar archivos utilizando el nombre del archivo, el tamaño del archivo, el permiso del archivo, los tiempos de modificación del archivo, etc. Básicamente, es un comando muy útil!
El formato básico del comando Find es el siguiente:
encontrar [lugar para buscar]
Ex:
encontrar / -name secreto.TXT
Aquí, el / representa el lugar para buscar el archivo que queremos, y le hemos pedido que busque un archivo por nombre de secreto.TXT.
Encontrar ejecutor
La mejor característica del comando Find es su argumento exec que permite al usuario de Linux llevar a cabo cualquier comando en los archivos que se encuentran. En otras palabras, se pueden realizar acciones en los archivos que se encuentran.
El comando Find -Exec tomará el siguiente formato:
encontrar [ruta] [argumentos] -exec [comando] [marcador de posición] [delimitador]
Tenemos que aprender sobre algunas cosas antes de poder usar el argumento EXEC:
Entonces, si digamos que estamos buscando un archivo llamado Secret.txt, entonces escribiríamos:
encontrar / -name secreto.TXT
Esto encontrará un montón de archivos en mi sistema cuando quiera ejecutar un comando. En lugar de escribir el nombre del archivo encontrado, lo reemplazaremos con él el marcador de posición .
Por ejemplo,
encontrar / -name 'secreto.txt '2> /dev /null -exec cat \;
Nota: En este caso, permítanme señalar también lo que hace el 2> /dev /null. El 2 significa error estándar, que queremos ignorar. Así lo enviamos a /dev /null. En esencia, estamos tomando los errores y tirándolos.
Por ahora, ignoremos el \; Parte y concéntrate en el marcador de posición. ¿Por qué agregamos la después de la palabra "gato"? Bueno, encontrará el archivo que estoy buscando, y luego, cuando lo haya encontrado, pasará el archivo al argumento EXEC como este:
-EXEC CAT \;
o
-EXEC Cat/Home/Kalyani/Secret.TXT \;
Entonces, es un marcador de posición para los resultados arrojados por el comando Find!
\; es un delimitador. Este delimitador en particular es cómo puede terminar el argumento de búsqueda. Cuando termina de esta manera, se toma una acción en cada resultado que encuentra.
Por ejemplo, he creado tres secretos.archivos txt: secreto.txt, secret2.txt y secret3.TXT.
Ahora, voy a emitir el siguiente comando:
encontrar / -name 'secreto*.txt '2> /dev /null -exec cat \;
Como puede ver en la imagen, encontró los tres archivos y sacó su contenido uno por uno. Entonces, ¿qué hace el \; hacer? Bueno, asegura que se tomen medidas en cada archivo. En este caso, tenemos tres archivos. El comando CAT se aplica por primera vez al primer resultado: Secret2.TXT. Luego, se aplica al segundo resultado: Secret3.TXT. Finalmente, se aplica al tercer resultado: secreto.TXT.
Aquí, cuando usas -EXEC CAT \; argumento, ejecuta lo siguiente:
Cat Secret2.TXT;
Cat Secret3.TXT;
secreto del gato.TXT;
Este es otro tipo de delimitador. Si y cuando se usa, se toman medidas en los resultados encontrados.
Por ejemplo:
encontrar / -name 'secreto*.txt '2> /dev /null -exec ls \+
La siguiente imagen le mostrará la diferencia entre el \; y el \+:
Aquí, cuando tu usar -exec ls \; argumento, ejecuta lo siguiente:
LS Secret2.TXT;
LS Secret3.TXT;
LS SECRETO.TXT;
Mientras -exec \+ argumento ejecuta lo siguiente:
LS Secret2.Txt Secret3.Secreto TXT.TXT;
Múltiples ejecutivos
Ahora, los argumentos múltiples de EEXC también se pueden pasar al comando.
El formato general será el siguiente:
Buscar [ruta] [argumentos] -exec [comandante_1] [marcador de posición] [delimitador] -exec [comandante_2] [marcador de posición] [delimitador] ... -exec [comandante] [marcador de posición] [delimitador]
Por ejemplo:
encontrar / -name 'secreto*.txt '2> /dev /null -exec ls \; -exec Cat \;
Aquí, como puede ver, toma el primer resultado y lo pasa a través del primer comando. Luego, lo pasa a través del segundo comando, y luego va al segundo resultado.
En esencia, los resultados se pasan de la siguiente manera:
LS Secret2.TXT; Cat Secret2.TXT;
LS Secret3.TXT; Cat Secret3.TXT;
LS SECRETO.TXT; secreto del gato.TXT;
Otro ejemplo:
encontrar / -name 'secreto*.txt '2> /dev /null -exec ls \+ -exec cat \+
En este caso, los resultados se pasan de la siguiente manera:
LS Secret2.Txt Secret3.Secreto TXT.TXT; Cat Secret2.Txt Secret3.Secreto TXT.TXT;
Conclusión
Linux es un sistema maravilloso con un billón de archivos. Sin embargo, viene con solo dos comandos distintos para buscar a través del pajar de nuestra aguja. El mejor uno de estos dos comandos es el comando Find. Las búsquedas de comando de búsqueda en todo el sistema de archivos para que tome un tiempo. Además, puede tomar medidas sobre los resultados encontrados. Esto significa que puede aplicar varios comandos en los archivos que se encuentran. Si desea moverlos, si desea eliminarlos, o incluso hacer locuras a los resultados del comando Find, puede; Tu conocimiento es el límite. Entonces, la próxima vez que tenga que hacer algo en un archivo, puede hacerlo usando el comando fing -exec! Esperamos que hayas encontrado este artículo útil. Consulte los otros artículos de Sugerencia de Linux para obtener más consejos e información.