Salvando a saída do comando find na variável

Salvando a saída do comando find na variável

Estou tentando salvar a saída do find em uma variável desta maneira:

a=find /Users/Downloads/DTI_allsites/subprojects/*/UII_0077 -name "dti_preprocessed" -type d

Mas continuo recebendo a seguinte mensagem:

-bash:

/Users/Downloads/DTI_allsites/subprojects/UII_B/UII_0077: é um diretório

sempre que tento usar o comando, para ecoar o caminho usando: echo $a

Não recebo nada salvo na variável. Como posso consertar isso?

Responder1

Como findretorna uma lista de caminhos de arquivos, você desejaria usar uma variável de array. Como um caminho de arquivo pode conter qualquer caractere, exceto NUL, você desejaria usar -print0e dividir o resultado em NUL

Com bash4.4+:

readarray -td '' list < <(find ... -print0)

so-something-with "${list[@]}"

informação relacionada