Usando xargs para construir um comando find que exclui uma lista de diretórios de uma variável de ambiente

0

Eu sei como excluir determinados diretórios de find : find <path> ! -path <path to exclude> . Mas isso pode ser muito entediante para digitar quando eu preciso excluir muitos diretórios ou simplesmente não pode ser usado quando a lista de diretórios que eu preciso excluir não é conhecida antecipadamente.

Então, digamos que eu tenha uma lista de diretórios armazenados em uma variável. Posso usar xargs para construir um comando find que exclui cada um desses diretórios? Se sim, como?

    
por Melab 16.02.2016 / 18:06

1 resposta

0

Para o caso de variável 'simples'; note que os diretórios não podem conter espaços em branco, pois é isso que os separa dentro da variável.

excludes='dir1 dir2 dir3'
findexcl=
set -f
for p in $excludes
do
  findexcl="$findexcl ! -path $p"
done
echo find ... $findexcl ...
    
por 16.02.2016 / 19:07

Tags