將 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[@]}"

相關內容