Ao contrário de bash
, zsh
por padrão relata um erro caso um padrão de geração de nome de arquivo não tenha correspondência. Esse comportamento pode ser alterado globalmente ou em uma base por padrão.
Para evitar que mensagens de erro não correspondam padrão globalmente, você pode definir uma das opções NULL_GLOB
ou CSH_NULL_GLOB
:
-
setopt nullglob
Se um padrão não tiver correspondência, ele será removido da lista de argumentos. Nenhuma mensagem de erro será impressa. No seu exemplo
rm dir1/* dir2/*
seria apenas expandido para
rm dir2/blah
-
setopt cshnullglob
Também remove padrões não correspondentes e não imprime uma mensagem de erro, a menos que nenhum dos padrões tenha correspondência.
Para evitar mensagens de erro para padrões únicos, você pode usar o qualificador de glob N
, que se comporta como se a opção NULL_GLOB
estivesse ativada para esse padrão:
rm dir1/*(N) dir2/*(N)
Isso também seria expandido para
rm dir2/blah