unix - texto - lineas de comando linux
Comando simple de Unix, ¿cuál es el{} y /; para (5)
Con este conjunto de comandos, ¿cuáles son los {} y /; personajes para?
find . -name ''*.clj'' -exec grep -r resources {} /;
En find, el parámetro -exec toma el resto de los parámetros hasta el; (punto y coma) que tiene que ser escapado, de ahí el / ;. Dentro de este lapso, {} se reemplaza con el nombre del archivo que se inspecciona.
La cadena de caracteres "{}" se reemplazará por el archivo actual que se está procesando. El punto y coma escapado termina el argumento del comando para la opción -exec.
Ver hombre encontrar . (Particularmente la parte sobre -exec
)
Cuando se utiliza -exec
para ejecutar un comando en cada uno de los archivos encontrados, el {}
se reemplaza con el nombre de cada archivo encontrado, y el comando finaliza con /;
En su ejemplo, todos los archivos encontrados en el directorio actual ( .
) *.clj
coincidan con el nombre *.clj
tendrán el comando grep -r resources
ejecutan en ellos (para encontrar los resources
cadena si existen en cada uno de esos archivos).
En realidad es algo redundante, ya que -r
es para buscar recursivamente subdirectorios, y eso es lo que find
ya está haciendo.
Considere este comando alternativo que me resulta más fácil de entender:
find . -name *.clj | xargs grep -r resources
La cadena {}
en find
se reemplaza por la ruta del archivo actual.
El punto y coma se usa para terminar el comando de shell invocado por la utilidad de find
.
Necesita ser escapado, o citado, por lo que no será interpretado por el shell, porque ;
es uno de los caracteres especiales utilizados por shell (operadores de lista).
Consulte también: ¿Por qué se requiere la barra invertida y el punto y coma con la opción -exec del comando find?