将 find 命令输出保存到变量

将 find 命令输出保存到变量

我试图以这种方式将查找输出保存到变量中:

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

但我不断收到以下消息:

-bash:

/Users/Downloads/DTI_allsites/subprojects/UII_B/UII_0077:是一个目录

每当我尝试使用该命令时,请使用以下命令回显路径: echo $a

我没有在变量中保存任何内容。我怎样才能解决这个问题?

答案1

由于find返回文件路径列表,因此您需要使用数组变量。由于文件路径可以包含除 NUL 之外的任何字符,因此您需要使用-print0NUL 并拆分结果

bash4.4+:

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

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

相关内容