Because I always forget one of those...
setopt extendedglob to work.
Files not ending in ~: ls patches/^*~ Files not ending in ~ and not ending in .orig: ls patches/^*(~|.orig) .patch files without .origs and backups: ls patches/*.patch^(~|.orig) Files without an extension: ls t/^*.* Regular files not ending with .o: ls ^*.o(.) Directories only (recursively): ls **/*(^/) Regular files only (recursively): ls **/*(.) Remove *.rej and *.orig w/o erroring out if _one_ does not exist: rm *.rej(N) *.orig(N) Numbered files with numbers above 21: ls *<22->Last modified: 2023-04-13T12:36:57Z