Como posso ignorar um espaço no nome do arquivo usando a condição if

Como posso ignorar um espaço no nome do arquivo usando a condição if

Tentei:

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

e quando um nome de arquivo com espaço é lido, ele imprime um erro:

 line 11: [: too many arguments 

Responder1

Cite a expansão de $item, assim como você já está fazendo com echo:

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

Relacionado:

Observe também que adicionar a /ao final do padrão forçará a correspondência de subdiretórios (sequalquer coisapartidas).

informação relacionada