Es posible que desee encadenar llamadas para encontrar (una vez, cuando se enteró, que es posible, que podría ser hoy). Por supuesto, esto solo es posible mientras permanezca en búsqueda. Una vez que se conecta a xargs está fuera de alcance.
Pequeño ejemplo, dos archivos a.lst y b.lst:
cat a.lst
fuddel.sh
fiddel.sh
cat b.lst
fuddel.sh
No hay truco aquí, simplemente el hecho de que ambos contienen "fuddel" pero solo uno contiene "fiddel".
Supongamos que no lo sabíamos. Buscamos un archivo que coincida con 2 condiciones:
find -exec grep -q fuddel {} ";" -exec grep -q fiddel {} ";" -ls
192097 4 -rw-r--r-- 1 stefan stefan 20 Jun 27 17:05 ./a.lst
Bueno, tal vez conozca la sintaxis de grep u otro programa para pasar ambas cadenas como condición, pero ese no es el punto. Aquí se puede usar cualquier programa que pueda devolver verdadero o falso, dado un archivo como argumento, grep fue solo un ejemplo popular.
Y tenga en cuenta que puede seguir find -exec con otros comandos find, como -ls o -delete o algo similar. Tenga en cuenta que eliminar no solo rm (elimina archivos), sino que rmdir (elimina directorios) también.
Dicha cadena se lee como una combinación AND de comandos, siempre que no se especifique lo contrario (es decir, con un -or
interruptor (y parens (que necesitan enmascaramiento))).
Así que no te vas de la cadena de búsqueda, lo cual es algo útil. No veo ninguna ventaja en el uso de -xargs, ya que debes tener cuidado al pasar los archivos, que es algo que find no necesita hacer: maneja automáticamente pasar cada archivo como un argumento único para ti.
Si cree que necesita un poco de enmascaramiento para los corchetes find {} , no dude en visitar mi pregunta que solicita evidencia. Mi afirmación es: no lo haces.
find
. ¡Muchas gracias!