![Usar xargs para construir un comando de búsqueda que excluya una lista de directorios de una variable de entorno](https://rvso.com/image/83675/Usar%20xargs%20para%20construir%20un%20comando%20de%20b%C3%BAsqueda%20que%20excluya%20una%20lista%20de%20directorios%20de%20una%20variable%20de%20entorno.png)
Sé cómo excluir ciertos directorios de find
: find <path> ! -path <path to exclude>
. Pero esto puede ser demasiado tedioso de escribir cuando necesito excluir muchos directorios o simplemente no se puede usar cuando la lista de directorios que necesito excluir no se conoce de antemano.
Entonces, digamos que tengo una lista de directorios almacenados en una variable. ¿Puedo utilizar xargs
para construir un find
comando que excluya cada uno de estos directorios? ¿Si es así, cómo?
Respuesta1
Para el caso de variable 'simple'; tenga en cuenta que los directorios no pueden contener espacios en blanco, ya que eso es lo que los separa dentro de la variable.
excludes='dir1 dir2 dir3'
findexcl=
set -f
for p in $excludes
do
findexcl="$findexcl ! -path $p"
done
echo find ... $findexcl ...