Thanks. I had attempted to strip away unnecessary complexity from my problem, but I now see that was a mistake. I have a function, recent: # Print the names of the most recent files in the specified directory. # Usage: recent [count [file_pattern]]] [directory] # count defaults to 1 # file_pattern defaults to * # directory defaults to the current directory. local dir= if [[ $# -gt 2 ]]; then if [[ ! -d "$3" ]]; then print -u2 "$0: directory \"$3\" does not exist." return 1 fi [[ $3 != '.' ]] && dir="$3"/ fi print -l -- ${dir}${~2:-*}(-om[1,${1:-1}]) So far, so good. recent 3 ==> zsh/ Any Given Sunday.mkv TheEnglishPatient.mkv BUT ls -ld $( recent 3 ) ==> /usr/bin/ls: cannot access 'Any': No such file or directory /usr/bin/ls: cannot access 'Given': No such file or directory /usr/bin/ls: cannot access 'Sunday.mkv': No such file or directory -rw-r--r-- 1 acs acs 727146010 Oct 22 15:52 TheEnglishPatient.mkv drwxr-xr-x 3 acs acs 3488 Oct 23 12:20 zsh/ I would like to make the second example work. I don't particularly care how the first example looks. Do I really have to use an external command (like `printf') to make this work? - Vin