if 조건을 사용하여 파일 이름의 공백을 어떻게 무시할 수 있습니까?

if 조건을 사용하여 파일 이름의 공백을 어떻게 무시할 수 있습니까?

나는 시도했다:

for item in *
do 
if [ -d  ${item} ]
then 
echo "$item" 
fi
done

공백이 있는 파일 이름을 읽으면 오류가 인쇄됩니다.

 line 11: [: too many arguments 

답변1

$item이미 다음과 같이 확장을 인용합니다 echo.

for item in *; do
    if [ -d "$item" ]; then
        echo "$item"
    fi
done

관련된:

또한 /패턴 끝에 a를 추가하면 하위 디렉터리가 강제로 일치됩니다(만일아무것성냥).

관련 정보