이 방법으로 찾기 출력을 변수에 저장하려고 합니다.
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[@]}"