SMarcell
(usa Slackware)
Enviado em 21/03/2011 - 14:20h
Como você sabe, o caractere curinga '*' casa com qualquer coisa, logo se você fizer o seguinte teste:
echo diretorio/*
A saída será como no exemplo:
diretorio/arq1 diretorio/arq2 diretorio/arq3 diretorio/arqN
Portanto ao utilizar a construção '[ diretorio/* = 'diretorio/*] ...' o shell irá expandir diretorio/* e depois compara a expansão feita com o literal (observe o uso das aspas simples!) 'diretorio/*'.
No caso do diretório em questão conter vários arquivos, o test vai retornar a mensagem 'número excessivo de argumentos', porém mesmo assim a comparação ainda será validada.
Outra alternativa seria utilizando o find:
find <diretório> -type d -empty