O [!...]padrão corresponde a um único caractere que não faz parte do ...conjunto entre colchetes. Este é um padrão de globbing de nome de arquivo usado por shells POSIX.
O [^...]padrão funciona da mesma forma, mas é uma expressão regular POSIX. Esse padrão geralmente não é portátil para outros shells como um padrão de globbing de nome de arquivo, mas o bashshell o reconhece e o trata como idêntico ao [!...]padrão.
Se você tiver a opção de escolher entre esses dois ao escrever um padrão de globbing de nome de arquivo, provavelmente deve usar a variante POSIX portátil [!...].
O padrão POSIX diz sobre o padrão de globbing de nome de arquivo [...]em geral:
Se um colchete aberto introduz uma expressão de colchete como em XBD RE Bracket Expression, exceto que o <exclamation-mark>caractere ( !) deve substituir o <circumflex>caractere ( ^) em seu papel em uma lista não correspondente na notação de expressão regular, ele deve introduzir uma expressão de colchete padrão. Uma expressão de colchetes começando com um <circumflex>caractere sem aspas produz resultados não especificados. Caso contrário, [deve corresponder ao próprio caractere.
O padrão deixa o uso de [^...]um padrão de globbing de nome de arquivo "não especificado" e o bashshell (e alguns outros) optaram por implementar isso como idêntico ao [!...].
O
[!...]
padrão corresponde a um único caractere que não faz parte do...
conjunto entre colchetes. Este é um padrão de globbing de nome de arquivo usado por shells POSIX.O
[^...]
padrão funciona da mesma forma, mas é uma expressão regular POSIX. Esse padrão geralmente não é portátil para outros shells como um padrão de globbing de nome de arquivo, mas obash
shell o reconhece e o trata como idêntico ao[!...]
padrão.Se você tiver a opção de escolher entre esses dois ao escrever um padrão de globbing de nome de arquivo, provavelmente deve usar a variante POSIX portátil
[!...]
.O padrão POSIX diz sobre o padrão de globbing de nome de arquivo
[...]
em geral:A coisa "XBD RE Bracket Expression" é a especificação para
[...]
expressões regulares .O padrão deixa o uso de
[^...]
um padrão de globbing de nome de arquivo "não especificado" e obash
shell (e alguns outros) optaram por implementar isso como idêntico ao[!...]
.