Salvando a saída do comando find para variável [duplicate]

1

Estou tentando salvar a saída de localização em uma variável dessa 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: is a directory

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

Eu não obtenho nada salvo na variável. Como posso consertar isso?

    
por hsayya 27.08.2018 / 17:27

1 resposta

1

Como find retorna uma lista de caminhos de arquivo, você deseja usar uma variável de matriz. Como um caminho de arquivo pode conter qualquer caractere, exceto NUL, você deve usar -print0 e dividir o resultado em NUL

com bash4.4 +:

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

so-something-with "${list[@]}"
    
por 27.08.2018 / 18:19