Сохранение вывода команды find в переменную

Сохранение вывода команды find в переменную

Я пытаюсь сохранить вывод поиска в переменную следующим образом:

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

Но я постоянно получаю следующее сообщение:

-баш:

/Users/Downloads/DTI_allsites/subprojects/UII_B/UII_0077: — это каталог

всякий раз, когда я пытаюсь использовать команду, чтобы отобразить путь, используя: echo $a

Я ничего не сохраняю в переменной. Как это исправить?

решение1

Поскольку findвозвращает список путей к файлам, вы бы хотели использовать переменную массива. Поскольку путь к файлу может содержать любой символ, кроме NUL, вы бы хотели использовать -print0и разделить результат на NUL

С bash4.4+:

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

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

Связанный контент