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

관련 정보