find コマンドの出力を変数に保存する

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

関連情報