nathan@gentoodesktop ~/Documents $ mkdir test
nathan@gentoodesktop ~/Documents $ mkdir te*/test
mkdir: cannot create directory 'te*/test': No such file or directory
nathan@gentoodesktop ~/Documents $ cd te*
nathan@gentoodesktop ~/Documents/test $ mkdir test
nathan@gentoodesktop ~/Documents/test $ ls
test
Um padrão só se expande para nomes existentes e o padrão
te*/test
não corresponde a nenhum nome existente. Observe quete*/test
é um padrão completo e que ate*
peça não é correspondida separadamente de/test
.Como o padrão não corresponde (e como as opções
nullglob
efailglob
shell não estão definidas), ele é deixado sem expansão e dado amkdir
, que reclama quando não pode criar o subdiretóriotest
no diretóriote*
.O comando
cd te*
é bem-sucedido porque o padrãote*
corresponde ao nome do diretório existentetest
. Se houver mais nomes correspondenteste*
, você pode ter recebido um erro decd
.Você pode depurar esse tipo de problema com as opções apropriadas. A primeira é
-v
, que produzirá mais saída, que você pode consultar. O outro é-p
, que criará diretórios pai se eles não estiverem presentes. Brincar com esses dois deve lhe dar uma boa lição. Por exemplo.: