ls -d *e* stampa tutti i file contenenti una "e" da qualche parte al suo interno. Ma il contrario, ls -d *[!e]* non sembra funzionare. Perché esattamente?
è perché ls accetta * come argomento ed espande tutti i file?
Capisco che posso fare:ls -d !(*e*) (in Bash con extglob set o in ksh).
Risposta accettata:
Quello che sta effettivamente facendo quel glob è abbinare un numero qualsiasi di caratteri, quindi un singolo carattere diverso da una e, quindi un numero qualsiasi di caratteri. Corrisponderà a qualsiasi file con un nome che non sia composto interamente da e.