Hello, The function dired-do-shell-command checks the user's command for any star or question mark not surrounded by whitespace or backquotes, asking whether they are deliberate, since the character will then be sent as-is to the shell, instead of being replaced with the marked file(s). A silly example: - Open a Dired buffer - M-! echo "Foobar." > foo RET - g - with point on foo: - ! sed 's/\./?/' RET The way the question is phrased bothers me: > Confirm--do you mean to use `?' as a wildcard? The first time I met this prompt was when I included a quoted '?' in my command as in the example above, so I definitely did *not* mean to use '?' as a shell wildcard. Even now, knowing what the question really means, it still trips my brain that I must answer "yes" (as in, "yes, I know Dired will not substitute the marked files") when I mean "no" (as in, "no, I don't mean to use '?' as a wildcard, what is this even ab- oh wait no right I meant yes! Yes! 🤦"). I can think of a few ways to solve this: 1. Rephrase the question to be more general, specifically without calling the characters "wildcards"; for example: > Confirm--do you mean to send `?' to the shell without substitution? 2. Parse the command to find out whether the shell will actually use these characters as wildcards. - not sure how portable this would be across different shells - AFAICT the aim of this prompt is simply to warn the user that Dired will not expand these characters; whether the shell will process them as wildcards is irrelevant 3. Add an option to skip this question (more of a workaround than a solution). Favoring option #1, I tried to find alternative questions, but none of the ones I came up with sounded satisfying (most of them included some form of double-negation, which is not the kind of puzzle I want to solve when I'm about to run a hastily-put-together Bash oneliner). I played around with the idea of actually *showing* the "unsubstituted" characters to the user in order to be able to say something like… > Confirm--the highlighted characters will not be substituted. > Proceed? … and ended up with the attached patch, which I am not entirely satisfied with (for one, it replaces `y-or-n-p' with `yes-or-no-p' merely because the former seems to strip my prompt's text attributes somehow[1]).