
私は次のようにして 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[@]}"