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

관련 정보