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を除く任意の文字を含めることができるため、-print0NULを使用して結果を分割する必要があります。

+によってbash4.4

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

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

関連情報