Impressive list. However, I think the 'docs' section is not quite right, as it was intended to link to existing documentation elsewhere. Personally, I'd put this subpage into the 'scripting' namespace (although, for such a big page, that's probably not fitting for every bit of information in there). We could also introduce a new namespace, like 'misc'... Moving pages is pretty simple for wiki admins. Ask #zsh on freenode. -- ft Feel free to move it wherever you wish, but do leave a redirect here. I don't feel knowledgeable enough about the organization of the wiki to have an opinion one way or another. -- jessew zrjam, thanks so much for the additions you've done! I really appreciate it. -- jessew I just learned about the [[http://zsh.dotsrc.org/Doc/Release/zsh_25.html|various]] [[http://zsh.dotsrc.org/Doc/Release/zsh_26.html|and]] [[http://zsh.dotsrc.org/Doc/Release/zsh_27.html|quite]] [[http://zsh.dotsrc.org/Doc/Release/zsh_28.html|useful]] [[http://zsh.dotsrc.org/Doc/Release/zsh_29.html|indexes]] [[http://zsh.dotsrc.org/Doc/Release/zsh_30.html|available]]. And I wish I'd known of them sooner, and I wish the [[http://zsh.dotsrc.org/Doc/Release/zsh_5.html#IDX78|links]] to specific functions, options, etc. were both more visible, and more transparent; what I'd like to be able to do was write: %[[man:compdef]]% and have it automagically link to http://zsh.dotsrc.org/Doc/Release/zsh_19.html#IDX1162 -- we should be able to do this, right? ====== Character Index, e.g. What does this character mean? ====== This is intended to be a list of the various and multiple meanings in the zsh of all the characters on the keyboard. Flags, punctuation, etc. It is sorted in ASCII order, but with case-folded. While it is intended to be complete, it is not so yet. (Quite a bit of the phrasing used below was copied from the [[http://www.bash2zsh.com/zsh_refcard/refcard.pdf |ZSH Reference Card]].) // // ==== ! ==== - ''!(//pat//)'' is a KSH_GLOB operator meaning anything but //pat// - ''!//expr//'' is the general form of history expansion - ''!'' is a history event designator expansion referring to the previous command - ''%!'' is a prompt expansion for the current history event number - ''!'' is a shell variable automatically set to the Process ID of last background process - ''!='' means not-equal within a double square bracket test expression - ''! //expr//'' is the boolean NOT within a double square bracket test expression - ''!//-foo//'' prevents //-foo// from being completed within the argument specifiers used by the _arguments completion utility function ==== " ==== - ''"'' serves to mark double quoted strings, a type of quoting (the others are single quoting (') and quoting the backslash (\)) - ''!"'' turns off the history mechanism for the current list ==== # ==== - ''//X//#'' is an EXTENDED_GLOB globbing pattern meaning zero or more occurrences of element //X// - ''//X//##'' is an EXTENDED_GLOB globbing pattern meaning one or more occurrences of element //X// - ''(#//X//)'' is the form of all EXTENDED_GLOB globbing flags, where //X// is the flag. - ''#'', in scripts (or interactively, with INTERACTIVE_COMMENTS set) makes the rest of the line a comment. - ''!#'' is a history expansion referring to the current command line so far. - ''%#'' is a prompt expansion used to identify root shells. - ''${//var//#//pat//}'' is a parameter expansion form returning the minimum match of //pat// removed from head - ''${//var//##//pat//}'' is a parameter expansion form returning the maximum match of //pat// removed from head - ''${//var//:#//pat//}'' is a parameter expansion form returning //var// unless //pat// matches, then empty - ''${#//var//}'' is a parameter expansion form returning the length of //var// in words (if it's an array) or bytes otherwise. - ''#'' is a shell variable automatically set to the number of arguments to a script or function ==== $ ==== - ''$//var//'' performs variable (i.e. parameter) substitution/expansion - ''${//var//}'' performs parameter substitution/expansion, and allows parameter expansion flags and alternative parameter expansion forms. - ''$(//cmds//)'' turns into the output of //cmds//, i.e. does command substitution (this is a synonym for ''`//cmds//`'' (backquoting)) - ''$((//expr//))'' performs arithmetic substitution, i.e. it does math on //expr// and turns into the result - '':$'' is a history expansion word selector referring to the last command argument; it's often used in the form of ''!!:$'' which expands to the last argument of the previous command - ''$'' is a shell variable automatically set to the process ID of the main shell process ==== % ==== - ''%'' is a glob qualifier referring to special files - ''%b'' is a glob qualifier referring to block special files - ''%c'' is a glob qualifier referring to character special files - ''%'' is a parameter expansion flag (e.g. ''${(%)//VARIABLE//}'') indicating that the string in //VARIABLE// should be prompt expanded - ''%//[optional integer]single character//'' forms all prompt expansions; rather than duplicating them here, please look them up under their single character - ''%////%'' is a prompt expansion that expands to a percent character (i.e. "%") - ''!?//str//?:%'' is a history expansion referring to the most recent word in the history matching //str// - ''!%'' or ''!:%'' is a history expansion referring to the word matched by the last ''!?//str//?'' history expansion (the ''%'' is a word selector/designator) - ''${//var//%//pat//}'' is a parameter expansion form returning the minimum match of pat removed from the tail end of the value of //var// - ''${//var//%////%//pat//}'' is a parameter expansion form returning the maximum match of pat removed from the tail end of the value of //var// - ''%'' in arithmetic expansions is the modular operator - ''%='' in arithmetic expansions is the modular assignment operator - ''%d'' in the value of the ''format'' completion zstyle refers to the specific format ==== & ==== - ''&&'' is used to connect pipelines (or single simple commands) into an AND sublist - ''&'' is history argument modifier causing a previously set of search and replace strings to be re-used ==== ' ==== - ''////'////'' is used to quote things; it is referred as single-quoting - ''////'////'////'' (two single quotes), when the option RC_QUOTES is on, get turned into one single quote when found inside a single-quoted string; otherwise, they just vanish (i.e. they end the string, and start a new one, which gets automatically joined with the last one) ==== ( ==== - ''(//list//)'' executes //list// in a subshell - ''(//choices//)'' enclose //choices// in a foreach statement - optionally surround patterns in a case statement - optional when defining a function - ''(//pat//)'' is a glob pattern that groups globbing patterns - ''(//pat1//|//pat2//)'' is a glob pattern that matches either //pat1// or //pat2// - surround patterns operated on by KSH_GLOB operators - surround EXTENDED_GLOB globbing flags - surround glob qualifiers when at the end of a glob pattern - surround the list executed in process substitution - surround the command executed in command substitution ($()) - a pair surrounds arithmetic expansion - may be used to surround parameter expansion flags, instead of '':'' - group tests within a double square bracket test expression - doubled, activates arithmetic expansion within test expressions - surround arguments to math functions - surround list of options to be excluded in the argument specifiers used by the _arguments completion utility function - surround explicit list of possible completions for arguments to options in the argument specifiers used by the _arguments completion utility function - sets of arguments in the argument specifiers used by the _arguments completion utility function ==== ) ==== - See ''('' ==== * ==== - ''*'' is a glob pattern referring to any string - ''*'' is a glob qualifier referring to executable plain files (e.g. "*(*)") - ''%%**/%%'' is a glob pattern referring to any number of directories, i.e. all subdirectories - ''%%***/%%'' same as "%%***%%" but also follows symlinks - ''*(//pat//)'' is a KSH_GLOB operator meaning zero or more copies of //pat// - **Other meanings not yet listed here...** ==== + ==== - ''%%+//cmd//%%'' is a glob qualifier referring to files for which %%//cmd//%% evaluates to ''true'' (%%//cmd//%% must be a single word) - ''$+VARIABLE'' returns 0 if VARIABLE is not set, and 1 if it is set (even if it is set to the empty string) - ''+(//pat//)'' is a KSH_GLOB operator meaning one or more copies of //pat// - **Other meanings not yet listed here...** ==== , ==== ==== - ==== - ''-'' is a glob qualifier toggling link following behavior; i.e. does globing work on symbolic link targets, or the link files themselves (default is link files, not targets) - '''' is a glob pattern meaning any number between //num1// and //num2//; if //num1// missing, from 0 to //num2//; if //num2// missing, from //num1// to infinity - **Other meanings not yet listed here...** ==== . ==== - ''.'' is a glob quantifier referring to plain files - **Other meanings not yet listed here...** ==== / ==== - ''/'' is a glob quantifier referring to directories - ''%%**%%/'' is a glob pattern referring to any number of directories, i.e. all subdirectories - ''-/'' is an option to the _path_files completion function causing it to complete only directories - **Other meanings not yet listed here...** ==== 0 ==== - ''-0'' is a synonym for the CORRECT option - ''0'' is a shell variable automatically set to the name used to invoke the current shell; with the FUNCTION_ARGZERO option set, reflects the name of functions and scripts while within them ==== 1 ==== ==== 2 ==== ==== 3 ==== - ''-3'' is a synonym for the NO_NO_MATCH option ==== 4 ==== - ''-4'' is a synonym for the GLOB_DOTS option ==== 5 ==== - ''-5'' is a synonym for the NOTIFY option ==== 6 ==== - ''-6'' is a synonym for the BG_NICE option ==== 7 ==== - ''-7'' is a synonym for the IGNORE_EOF option ==== 8 ==== - ''-8'' is a synonym for the MARK_DIRS option ==== 9 ==== - ''-9'' is a synonym for the AUTO_LIST option ==== : ==== - '':'' separates parts of a zstyle context - ''://class//:'' is the form of all character classes, where class is one of ''alnum'', ''alpha'', etc - **Other meanings not yet listed here...** ==== ; ==== - '';'' terminates a sublist, and is a synonym for a newline - '';;'' terminates a particular case within a case statement - '';&'' terminates a particular case within a case statement, but falls through - **Other meanings not yet listed here...** ==== < ==== - '''' is a glob pattern meaning any number between //num1// and //num2//; if //num1// missing, from 0 to //num2//; if //num2// missing, from //num1// to infinity - ''<(//cmds//)'' is a type of process substitution (expansion), which expands to a device file (or FIFO) holding the output of //cmds// - **Other meanings not yet listed here...** ==== = ==== - ''='' is a glob quantifier referring to sockets - ''=(//cmds//)'' is a type of process substitution (expansion), which expands to temporary file holding the output of //cmds// - **Other meanings not yet listed here...** ==== > ==== - '''' is a glob pattern meaning any number between //num1// and //num2//; if //num1// missing, from 0 to //num2//; if //num2// missing, from //num1// to infinity - ''>(//cmds//)'' is a type of process substitution (expansion), which expands to a device file (or FIFO) which will be read for standard input by //cmds// - **Other meanings not yet listed here...** ==== ? ==== - ''?'' is a glob pattern matching any single character - ''?(//pat//)'' is a KSH_GLOB operator matching zero or 1 copy of //pat// - ''!?//str//'' is a history expansion referring to the last command containing //str// - ''%?'' is a prompt expansion for the return status of most recently executed command - ''${//var//:?//str//}'' is a parameter expansion form which returns //var// if it is non-null, otherwise prints //str//(if given) as an error and aborts - ''?'' is a shell variable automatically set to the status of the most recently executed command - ''//test//?//true_exp//://false_exp//'' is the C ternary if statement, usable only within arithmetic expressions ==== @ ==== - ''@(//pat//)'' is a KSH_GLOB operator used to group patterns - ''@'' is a glob quantifier referring to symbolic links - ''%@'' is a prompt expansion expanding to the current time, in 12 hour (AM/PM) format. (''%t'' is a synonym) - ''@'' is a parameter expansion flag causing arrays to be expanded even within double quotes - ''@'' is a shell variable automatically set to the list of positional parameters within a script or function; unlike ''argv'', it splits into words even within double quotes. ==== a ==== - ''-a'' is a synonym for the ALL_EXPORT option - ''-A'' and ''+A'' are options to the ''set'' builtin used for creating arrays - ''(#a//num//)'' is an EXTENDED_GLOB globbing flag causing //num// approximations to be permitted in matches - ''a'' is a glob qualifier specifying a particular access time; its format is ''a'' followed by one of the letters ''Mwhms'' (referring to the time units: Months, weeks, hours, minutes or seconds) followed by a plus or minus (referring to at older than or newer than), followed by a number (to set how many time units) - ''A'' is a glob qualifier specifying the group read permission is set, i.e. --r----- or 0040 - ''A'' is a parameter expansion flag which creates an array parameter - ''AA'' is a parameter expansion flag which creates an associative array parameter - ''a'' is a parameter expansion flag causing sorting to be done on array index - ''-a'' is a test expression operator which is true if the filename following it exists - ''oa'' is a glob qualifier which causes the results to be sorted by access time; see under ''o'' for other sort orders ==== b ==== - ''-B'' is a synonym for the NO_BEEP option - ''(#b)'' is an EXTENDED_GLOB globbing flag turning on backreferences, i.e. setting the shell parameters match, mbegin, & mend. - ''(#B)'' is an EXTENDED_GLOB globbing flag turning off backreferences - ''%b'' is a glob qualifier referring to block special files - **Other meanings not yet listed here...** ==== c ==== - ''-C'' is a synonym for the NO_CLOBBER option - ''%c'' is a glob qualifier referring to character special files - ''c'' is a glob qualifier specifying a particular inode change (attribute modification) time; it's format is ''c'' followed by one of the letters ''Mwhms'' (referring to the time units: Months, weeks, hours, minutes or seconds) followed by a plus or minus (referring to at older than or newer than), followed by a number (to set how many time units) - ''oc'' is a glob qualifier which causes the results to be sorted by inode change (attribute modification) time; see under ''o'' for other sort orders - **Other meanings not yet listed here...** ==== d ==== - ''-D'' is a synonym for the PUSHD_TO_HOME option - ''d//dev//'' is a glob qualifier referring to files with a device number of //dev// - ''D'' is a glob qualifier which turns on the GLOB_DOTS option - ''oc'' is a glob qualifier which causes the results to be sorted with files in subdirectories first; see under ''o'' for other sort orders - **Other meanings not yet listed here...** ==== e ==== - ''-e'' is a synonym for the ERR_EXIT option - ''-E'' is a synonym for the PUSHD_SILENT option - ''(#e)'' is an EXTENDED_GLOB globbing flag forcing the pattern to only match at the end of the test string - ''e//string//'' is a glob qualifier referring to files for which //string// evaluates to ''true'' - ''E'' is a glob qualifier specifying the group execute permission is set, i.e. ----x--- or 0010 - **Other meanings not yet listed here...** ==== f ==== - ''-F'' is a synonym for the NO_GLOB option - ''-f'' is a synonym for the NO_RCS option - ''F'' is a glob quantifier referring to non-empty directories - ''f//spec//'' is a glob quantifier referring to files with the chmod-style permissions of //spec// - ''-f'' is an option to the _path_files completion function causing it to complete all files, as is the default - ''-F //files//'' is an option to the _path_files completion function causing it to ignore, i.e. not complete //files//, overriding //ignored-patterns// - **Other meanings not yet listed here...** ==== g ==== - ''-g'' is a synonym for the HIST_IGNORE_SPACE option - ''-G'' is a synonym for the NULL_GLOB option - ''G'' is a glob qualifier referring to files owned by a user in the same group as the current effective user (i.e. with the same effective GID) - ''g//gid//'' is a glob qualifier referring to files owned by a user in //gid// (can be a name instead of a number) - ''-g //pat//'' is an option to the _path_files completion function causing it to complete files that match //pat// - **Other meanings not yet listed here...** ==== h ==== - ''-h'' is a synonym for the HIST_IGNORE_DUPS option - ''-H'' is a synonym for the RM_STAR_SILENT option - ''ah'', ''ch'' or ''mh'' are glob qualifiers specifying a particular access time, inode change (attribute modification) time, or modification time; see under ''a'', ''c'' or ''m'' for details - **Other meanings not yet listed here...** ==== i ==== - ''-I'' is a synonym for the IGNORE_BRACES option - ''-i'' is a synonym for the INTERACTIVE option - ''(#i)'' is an EXTENDED_GLOB globbing flag causing case insensitive matching - ''(#I)'' is an EXTENDED_GLOB globbing flag causing case sensitive matching - ''I'' is a glob qualifier specifying the group write permission is set, i.e. ---w---- or 0020 - **Other meanings not yet listed here...** ==== j ==== - ''-J'' is a synonym for the AUTO_CD option - ''%j'' is a prompt expansion referring to the number of jobs, as displayed by the ''jobs'' builtin - ''j://str//:'' is a parameter expansion flag causing the words expanded by the parameter to be joined with //str// in between ==== k ==== - ''-k'' is a synonym for the INTERACTIVE_COMMENTS option - ''-K'' is a synonym for the NO_BANG_HIST option - **Other meanings not yet listed here...** ==== l ==== - ''-l'' is a synonym for the LOGIN option - ''-L'' is a synonym for the SUN_KEYBOARD_HACK option - ''(#l)'' is an EXTENDED_GLOB globbing flag causing lower case to match upper case - ''l-//num//'' and ''l+//num//'' are glob qualifiers referring to files with link counts less than (or greater than, for ''+'') //num// - ''oL'' is a glob qualifier which causes the results to be sorted by file size (Length); see under ''o'' for other sort orders - ''ol'' is a glob qualifier which causes the results to be sorted by link count; see under ''o'' for other sort orders - **Other meanings not yet listed here...** ==== m ==== - ''-m'' is a synonym for the MONITOR option - ''-M'' is a synonym for the SINGLE_LINE_ZLE option - ''(#m)'' is an EXTENDED_GLOB globbing flag causing the match data to be saved, i.e. the contents and length of the match are put in the shell parameters MATCH, MBEGIN and MEND - ''m'' is a glob qualifier specifying a particular modification time; its format is ''m'' followed by one of the letters ''Mwhms'' (referring to the time units: Months, weeks, hours, minutes or seconds) followed by a plus or minus (referring to at older than or newer than), followed by a number (to set how many time units) - ''M'' is a glob qualifier which causes directories to be marked (i.e. sets the MARK_DIRS option) - ''(#M)'' is an EXTENDED_GLOB globbing flag causing the match data not be saved - ''aM'', ''am'', ''cM'' or ''cm'' are glob qualifiers specifying a particular access time (the first two) or inode change (attribute modification) time; see under ''a'' or ''c'' for details. - ''om'' is a glob qualifier which causes the results to be sorted by modification time; see under ''o'' for other sort orders - **Other meanings not yet listed here...** ==== n ==== - ''-N'' is a synonym for the AUTO_PUSHD option - ''-n'' is a synonym for the NO_EXEC option - ''N'' is a glob qualifier which turns on the NULL_GLOB option - ''n'' is a glob qualifier which turns on the NUMERIC_GLOB_SORT option - ''on'' is a glob qualifier which causes the results to be sorted by name; see under ''o'' for other sort orders - **Other meanings not yet listed here...** ==== o ==== - ''-O'' is a synonym for the CORRECT_ALL option - ''o'' is a glob qualifier that selects a type of sorting; the choices are ''on'', name (default); ''oL'', size (Length); ''ol'', link count; ''oa'', access time, ''om'', modification time, ''oc'', inode change (attribute modification) time, ''od'', files in subdirectories appear before those in the current directory at each level of the search - ''O'' is a glob qualifier that selects a type of sorting, reversed from ''o''; the choices are the same as with ''o'' - **Other meanings not yet listed here...** ==== p ==== - ''-p'' is a synonym for the PRIVILEGED option - ''-P'' is a synonym for the RC_EXPAND_PARAM option - ''p'' is a glob qualifier referring to named pipes (FIFOs) - **Other meanings not yet listed here...** ==== q ==== - ''-Q'' is a synonym for the PATH_DIRS option - ''(#q//expr//)'' is an EXTENDED_GLOB globbing flag listing a set of glob qualifiers - ''q'' is a history argument modifier which adds a layer of quotes - ''Q'' is a history argument modifier which strips off a layer of quotes - ''q'' is a parameter expansion flag causing the result to be quoted with backslashes - ''qq'' is a parameter expansion flag causing the result to be quoted with single quotes - ''qqq'' is a parameter expansion flag causing the result to be quoted with double quotes - ''qqqq'' is a parameter expansion flag causing the result to be quoted with the ''$'...''' form - ''Q'' is a parameter expansion flag which strips off a layer of quotes ==== r ==== - ''-R'' is a synonym for the LONG_LIST_JOBS option - ''-r'' is a synonym for the RESTRICTED option - ''r'' is a glob qualifier specifying that matched files are readable by their owners - ''R'' is a glob quantifier referring world readable files - **Other meanings not yet listed here...** ==== s ==== - ''-S'' is a synonym for the REC_EXACT option - ''-s'' is a synonym for the SHIN_STDIN option - ''(#s)'' is an EXTENDED_GLOB globbing flag forcing the pattern to only match at the beginning of the test string - ''s'' is a glob quantifier referring to setuid files (set user id) - ''s'' is a glob quantifier referring to setgid files (set group id) - ''as'', ''cs'' or ''ms'' are glob qualifiers specifying a particular access time, inode change (attribute modification) time, or modification time; see under ''a'', ''c'' or ''m'' for details - **Other meanings not yet listed here...** ==== t ==== - ''-T'' is a synonym for the CDABLE_VARS option - ''-t'' is a synonym for the SINGLE_COMMAND option - ''t'' is a glob quantifier referring to files with the sticky bit set - ''T'' is a glob qualifier which causes directories, links, and special files to be marked (i.e. sets the LIST_TYPES option) - **Other meanings not yet listed here...** ==== u ==== - ''-U'' is a synonym for the MAIL_WARNING option - ''-u'' is a synonym for the NO_UNSET option - ''U'' is a glob qualifier referring to files owned by the current effective UID - ''u//uid//'' is a glob qualifier referring to files owned by //uid// (can be a name instead of a number) - **Other meanings not yet listed here...** ==== v ==== - ''-V'' is a synonym for the NO_PROMPT_CR option - ''-v'' is a synonym for the VERBOSE option - **Other meanings not yet listed here...** ==== w ==== - ''-W'' is a synonym for the AUTO_RESUME option - ''-w'' is a synonym for the CHASE_LINKS option - ''w'' is a glob qualifier specifying that matched files are writable by their owners - ''W'' is a glob quantifier referring world writable files - ''aw'', ''cw'' or ''mw'' are glob qualifiers specifying a particular access time, inode change (attribute modification) time, or modification time; see under ''a'', ''c'' or ''m'' for details. - ''-W //dirs//'' is an option to the _path_files completion function causing it to look in //dirs// for files to complete - **Other meanings not yet listed here...** ==== x ==== - ''-X'' is a synonym for the LIST_TYPES option - ''-x'' is a synonym for the XTRACE option - ''x'' is a glob qualifier specifying that matched files are executable by their owners - ''X'' is a glob quantifier referring world executable files - **Other meanings not yet listed here...** ==== y ==== - ''-Y'' is a synonym for the MENU_COMPLETE option - ''-y'' is a synonym for the SH_WORD_SPLIT option - **Other meanings not yet listed here...** ==== z ==== - ''-Z'' is a synonym for the ZLE option - **Other meanings not yet listed here...** ==== [ ==== - ''%%[[%% //cond// %%]]%%'' evaluates //cond// as a test expression, returning true or false - ''%%[%%//class//%%]%%'' is a glob pattern meaning any single character in //class// - ''%%[%%^//class//%%]%%'' is a glob pattern meaning any single character not in //class// - ''%%[%%//num//%%]%%'' is a glob qualifier causing the pattern to only return only the //num//th result - ''%%[%%//beg//,//end//%%]%%'' is a glob qualifier causing the pattern to only return the results between //beg// and //end// as if they were an array (//beg// and //end// can be expressions) - **Other meanings not yet listed here...** ==== \ ==== ==== ] ==== - See ''['' ==== ^ ==== - ''%%[%%^//class//%%]%%'' is a glob pattern meaning any single character not in //class// - ''^//pat//'' is an EXTENDED_GLOB globbing pattern meaning anything that doesn't match //pat// - ''^'' is a glob quantifier which negates the following quantifiers - ''^'' is a history word selector which selects the first argument (i.e. a synonym for ''1'') - ''${^//var//}'' is a parameter expansion form that causes the elements of var to be expanded like brace expansion ==== { ==== - ''{//list//}'' groups the commands in //list//, so they act like a single command, e.g. they can be redirected as a whole - ''${//var//}'' performs parameter substitution/expansion, and allows parameter expansion flags and alternative parameter expansion forms (for which, see under their sections in this page) ==== | ==== - ''||'' is used to connect pipelines (or single simple commands) into an OR sublist - ''|'' , the pipe character, is used to redirect the output of one command into the input of another, forming a pipeline - ''(//pat1//|//pat2//)'' is a glob pattern that matches either //pat1// or //pat2// - **Other meanings not yet listed here...** ==== } ==== - See ''{'' ==== ~ ==== - ''//pat//~//exclude_pat//'' is an EXTENDED_GLOB globbing pattern meaning anything that matches //pat// and doesn't match //exclude_pat//