Como configurar uma variável pré-definida com vários caminhos de diretório para usar com o comando find

1

Estou procurando um script para excluir arquivos com mais de 90 dias em determinados diretórios. Como em, existem 8 diretórios que possuem caminhos diferentes para eles.

Eu posso executar o comando find em um diretório como tal:

find /directory1/dir2/dir3/dir4/ -mtime +90 | wc -l

Esse comando dará um resultado como 6401.

Mas tenho 8 diretórios que precisam ser analisados. Como eu poderia construir uma lista de diretórios como uma variável. Eu tenho:

variable

DIRLIST=/directory1/dir2/dir3/dir4/ /directory1/dir2/dir3/dir5/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir7/

command 

find $DIRLIST | wc -l

A saída me dá algo ao longo das linhas:

nameofscript.sh[2]: /directory1/dir2/dir3/dir5/: 0403-006 Execute permission denied.

É estranho porque quando eu chamo esse diretório sozinho no comando find, o comando funciona, então eu sei que não é realmente um problema de permissões.

Qualquer ajuda seria muito apreciada.

    
por Simply 08.01.2016 / 06:16

1 resposta

1

Você declarou $ DIRLIST incorretamente

Isto é como declarar a variável de matriz

DIRLIST=(/directory1/dir2/dir3/dir4/ /directory1/dir2/dir3/dir5/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir7/)

Em seguida, execute o comando find:

find "${DIRLIST[*]}" | wc -l

    
por 08.01.2016 / 06:23